würde Ich mag die folgende aus meiner Sicht in das Modell der zugehörigen Helfer bewegen:Umgestalten Rails 3 Ansichten - move Logik <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]) %>
ich das versucht habe, aber es verursacht einen unerwarteten IDENTIFIER Fehler (klar ich brauche die Ergebnisse der link_to_unless zum verketten ‚|‘):
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])
Es scheint, dass ich diese Hilfsmethoden in den HTML-Stream die Ergebnisse einfügen müssen, aber ich bin nicht sicher, der beste Ansatz .
Jetzt, da Rails 3 alle Helfer die ganze Zeit (Helfer: alle) enthält gibt es eine Möglichkeit, die Ansicht eines Modells anzuweisen, nur den Helper zu verwenden, der dem Modell zugeordnet ist? An dieser Stelle füge ich den Namen des Modells in den Namen der Funktion ein, zum Beispiel "jobs_sorted_column".
** bearbeiten **
Überarbeitete
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
Ansicht:
[ <% ['0','30','60','90'].each do |bucket| %>
<%= posted_filter(bucket) %> |
<% end %> ]
Probleme:
- Die resultierende Ausgabe sieht wie [0 | aus 30 | 60 | 90 | ]. Gibt es eine einfache Lösung, um das 4. '|' zu entfernen?
- Es scheint, als gäbe es eine elegantere Möglichkeit, die Parameter an die Route zu übergeben, einschließlich des einen "überfahrenen" Werts (: gepostet => Eimer, in meinem Beispiel).
Ich mag den Ansatz, aber wenn ich den Code zum zugehörigen Helfer hinzufüge, ist das Ergebnis eine Textzeichenfolge, die HTML-Code ist, anstatt Links. vermisse ich etwas? – craig
hat es behoben, um html_safe zu erzwingen. sollte jetzt funktionieren – changelog
nein. ähnelt immer noch [0 | ... – craig