Je voudrais déplacer le suivant de mon point de vue dans l'aide associée du modèle:refactoring Rails 3 vues - logiques de déplacement à <model> _helper
<%= link_to_unless params[:aged]=='0', "0", jobs_path(:aged => '0', :sort=>params[:sort],:dir=>params[:dir],:fav=>params[:fav]) %> |
<%= link_to_unless params[:aged]=='30', "30", jobs_path(:aged => '30', :sort=>params[:sort],:dir=>params[:dir],:fav=>params[:fav]) %> |
<%= link_to_unless params[:aged]=='60', "60", jobs_path(:aged => '60', :sort=>params[:sort],:dir=>params[:dir],:fav=>params[:fav]) %> |
<%= link_to_unless params[:aged]=='90', "90", jobs_path(:aged => '90', :sort=>params[:sort],:dir=>params[:dir],:fav=>params[:fav]) %>
J'ai essayé, mais il provoque une erreur IDENTIFIER INATTENDU (clairement Je dois concaténer les résultats de l'link_to_unless au « | »):
link_to_unless params[:aged]=='0', "0", users_path(:aged=>'0',:sort=>params[:sort],:dir=>params[:dir],:fav=>params[:fav]) |
link_to_unless params[:aged]=='30', "30", users_path(:aged=>'30',:sort=>params[:sort],:dir=>params[:dir],:fav=>params[:fav]) |
link_to_unless params[:aged]=='60', "60", users_path(:aged=>'60',:sort=>params[:sort],:dir=>params[:dir],:fav=>params[:fav]) |
link_to_unless params[:aged]=='90', "90", users_path(:aged=>'90',:sort=>params[:sort],:dir=>params[:dir],:fav=>params[:fav])
Il semble que je dois insérer les résultats de ces méthodes d'aide dans le flux HTML, mais je ne suis pas certain de la meilleure approche .
Maintenant que Rails 3 inclut tous les helpers tout le temps (helpers: all), est-il possible d'indiquer à la vue d'un modèle d'utiliser uniquement l'assistant associé au modèle? À ce stade, j'ajoute le nom du modèle dans le nom de la fonction - par exemple, 'jobs_sorted_column'.
** modifier **
refactorisé
jobs_helper:
def posted_filter(bucket)
link_to_unless params[:posted]==bucket, bucket, jobs_path(:posted =>bucket, :starting=>params[:starting],:sort=>params[:sort],:dir=>params[:dir])
end
vue:
[ <% ['0','30','60','90'].each do |bucket| %>
<%= posted_filter(bucket) %> |
<% end %> ]
Questions:
- La sortie résultante ressemble à [0 | 30 | 60 | 90 | ] existe-t-il une solution simple pour supprimer le 4ème '|'?
- Il semble qu'il y aurait une manière plus élégante de passer les paramètres à la route, y compris la valeur 'over-ridden' (: posted => bucket, dans mon exemple).
J'aime l'approche, mais quand j'ajoute le code à l'assistant associé, le résultat est une chaîne de texte qui est échappée HTML, plutôt que des liens. Ai-je raté quelque chose? – craig
l'a corrigé pour forcer html_safe. devrait fonctionner maintenant – changelog
non. ressemble toujours à [0 | ... – craig