Was ist der beste Weg, um mehrere Tags aus einer Rails Helper zurückzukehren?
-
02-07-2019 - |
Frage
Ich mag ein verstecktes Feld erstellen und einen Link in einem Helfer erstellen und dann Ausgabe sowohl auf meine erb.
<%= my_cool_helper "something", form %>
Sollte löschte die Ergebnisse
link_to "something", a_path
form.hidden_field "something".tableize, :value => "something"
Was wäre die Definition des Helfers aussehen? Die Details, was link_to und die form.hidden_field keine Rolle wirklich. Was zählt, ist, wie kann ich die Ausgabe von zwei verschiedenen Anrufen zurück.
Lösung
Es gibt mehrere Möglichkeiten, dies zu tun.
Beachten Sie, dass die bestehenden Schienen Helfer wie link_to
, etc, nur Ausgabestrings. Sie können die Strings verketten zusammen und zurück, dass (das ist, was ich die meiste Zeit tun, wenn die Dinge einfach sind).
Beispiel:
link_to( "something", something_path ) + #NOTE THE PLUS FOR STRING CONCAT
form.hidden_field('something'.tableize, :value=>'something')
Wenn Sie Dinge zu tun, die komplizierter sind, können Sie einfach diesen Code in einem Teil setzen, und Ihr Helfer Anruf render :partial
haben.
Wenn Sie kompliziertere Sachen als auch zu tun, dass, dann möchten Sie vielleicht bei errtheblog der
Andere Tipps
Bisher ist die beste, die ich gekommen bin mit ist:
def my_cool_helper(name, form)
out = capture { link_to name, a_path }
out << capture { form.hidden_field name.tableize, value => 'something' }
end
Gibt es einen besseren Weg?
Wenn Sie andere Ausgabe puffern wollen, die von Zeichenfolge auseinander, dann können Sie concat
statt +
verwenden.
sehen diese - http://thepugautomatic.com/2013/06/helpers/