Unless

Salut

j’aimerais affiché une virgule tant que le prochain élément n’est pas
vide

j’ai essayé qqch comme ca

<% @questions_brouillons.each do | brouillon | %>
		<%= link_to h(brouillon.question_fr), faq_path(:faq_category_id

=> @faq_category.id, :id => brouillon) %>
<% next unless brouillon.blank? %>,<% end %>
<% end %>

mais ca ne passe

merci :slight_smile:
Bolo M.
[email protected]
http://blog.developpez.com/index.php?blog=30

Salut Bolo,

<% @questions_brouillons.each do | brouillon | %>
<%= link_to h(brouillon.question_fr), faq_path(:faq_category_id =>
@faq_category.id, :id => brouillon) %>
<% next unless brouillon.blank? %>,<% end %>
<% end %>

<%=
@questions_brouillons.map do |brouillon|
link_to( h(brouillon.question_fr),
faq_path(:faq_category_id => @faq_category.id, :id =>
brouillon))
end.join(’, ')
%>

Tu peux en faire un helper.

– Jean-François.

merci pour ta réponse peut tu m’expliquer a quoi sert map ?

merci
Le 27 oct. 06 à 13:38, Jean-François a écrit :

link_to( h(brouillon.question_fr),
Ã? la renverse.


Railsfrance mailing list
[email protected]
http://lists.rubyonrails.fr/mailman/listinfo/railsfrance

Bolo M.
[email protected]
http://blog.developpez.com/index.php?blog=30

Bolo :

<%=
@questions_brouillons.map do |brouillon|
link_to( h(brouillon.question_fr),
faq_path(:faq_category_id => @faq_category.id, :id => brouillon))
end.join(’, ')
%>

merci pour ta réponse peut tu m’expliquer a quoi sert map ?

map (ou collect) sert à construire un tableau à partir de ton tableau
@questions_brouillons. Ce nouveau tableau est un tableau de chaînes
de caractères, plus exactement de chaînes “<a href…” générés
par link_to. Ensuite je transforme ce tableau en une chaîne de
caractères unique avec #join.

ri Array#join
ri Enumerable#map

Rien ne vaut aussi un bon irb pour voir comment ça
marche (que se passe-t-il si le tableau est vide ou n’a qu’un
seul élément ?) :

$ irb

%w(un deux trois).map { |element| “(#{element})” }.join(’, ')
=> “(un), (deux), (trois)”

%w(un deux trois).collect { |element| “(#{element})” }.join(’, ')
=> “(un), (deux), (trois)”

%w(un).collect { |element| “(#{element})” }.join(’, ')
=> “(un)”

%w().collect { |element| “(#{element})” }.join(’, ')
=> “”

– Jean-François.

Jean Francois ce code je dois bien le remplacer par ca

<% @questions_brouillons.each do | brouillon | %>
<%= link_to h(brouillon.question_fr), faq_path(:faq_category_id =>
@faq_category.id, :id => brouillon) %>
<% next unless brouillon.blank? %>,<% end %>
<% end %>

quand je fais un teste je ne vois plus aucune question

j’avais pensé a un truc comme ca

<% unless brouillon.last %>,<% end %>

mais à chaque fois j’ai un message me disant que la méthode last
n’exite pas dans mon model

Le 27 oct. 06 à 13:38, Jean-François a écrit :

link_to( h(brouillon.question_fr),
Ã? la renverse.


Railsfrance mailing list
[email protected]
http://lists.rubyonrails.fr/mailman/listinfo/railsfrance

Bolo M.
[email protected]
http://blog.developpez.com/index.php?blog=30

Bolo M. wrote:

Salut

j’aimerais affiché une virgule tant que le prochain élément n’est pas
vide

j’ai essayé qqch comme ca

<% @questions_brouillons.each do | brouillon | %>
<%= link_to h(brouillon.question_fr), faq_path(:faq_category_id
=> @faq_category.id, :id => brouillon) %>
<% next unless brouillon.blank? %>,<% end %>
<% end %>

Ce que tu as envie de faire me semble etre exactement la methode
.to_sentence :
http://api.rubyonrails.org/classes/ActiveSupport/CoreExtensions/Array/Conversions.html#M000274

En tout cas, je ne vois pas ou est la différence. En quoi est-ce que :
@questions_brouillons.collect {|brouillon| link_to
h([CODE])}.to_sentence
ne répondrait pas à tes attentes ?


Jasperiel

Pour éviter de créer des objets temporaires qui ne sont pas gratuits Ã
l’exécution je verrais bien ça :

<% @questions_brouillons.each_with_index do | brouillon, index | %>
<% if index > 0 %>,<% end %>
<%= link_to h(brouillon.question_fr), faq_path(:faq_category_id =>
@faq_category.id, :id => brouillon) %>
<% end %>

Quand on a des années de chasse au gaspi C/C++ derrrière soi on hésite
un
peu à créer des maps à tout va :wink: