Holen Sie sich ein array aus einer Rails-form
Muss ich ein Formular entwerfen für eine account
Ressource. In dieser form, die ich sammeln müssen einige Satz-ids als array in der params
Hashwert im Attribut namens relationships
.
So dass die endgültige params[account]
hash aus der POST-Anforderung sollte wie:
{:name => 'somename', :relationships => ["123", "23", "23445"]}
Wie soll ich das design der form_for
Felder? Ich habe versucht, aber hat nicht funktioniert:
<%= form_for @account do |f| %>
<%= f.text_field :name %>
<% @eligible_parents.each do |p| %>
<%= f.check_box "relationships", nil, :value => p.id %>
<b><%= p.name %></b><br/>
</span>
<% end %>
<%= f.submit "Submit" %>
<% end %>
Anzahl der Elemente in @eligible_parents
variiert jedes mal.
relationships
ist weder ein Verein noch ein Attribut in account
Modell.
Ich habe die Verwendung von virtuellen Attributen, aber ich brauche zum ausfüllen eines Arrays aus einem Formular.
Bitte helfen. Wie kann ich dies tun?
Mögliche Antwort/Duplizieren: stackoverflow.com/questions/8271940/... Es ist ein bisschen anders, aber ich denke, die zugrunde liegende Technik ist die gleiche.
InformationsquelleAutor Anand | 2012-02-06
Du musst angemeldet sein, um einen Kommentar abzugeben.
Müssen Sie noch eine
fields_for
in Ihren anzeigen, einfach nur:relationships
alsrecord_name
geben Sie dann ein Objekt.Dokumentation hier: ActionView::Helpers::FormHelper
Ich fand dies heraus, während Sie versuchen zu lösen, eines meiner Probleme, diese Besondere Sache ich landete Blick auf die Dokumentation und die Schienen-source auf github, landete ich zu finden wenig Edelsteine wie diese.
InformationsquelleAutor Azolo
Ich festgestellt, dass das der sauberste Weg...
Wenn Sie gerade Daten und zurück zu senden, ein array ohne Verwendung einer dieser @ - Objekte:
Ihre params-Daten zurückgeben sollte, wie diese:
id
"Sie werden wahrscheinlich tun eine .id werden sollten ['id'], wenn Sie die Arbeit mit nicht-active-record-Modelle
InformationsquelleAutor Richard Kuo
Wenn Sie möchten, senden Sie array der Werte verwenden Sie einfach die [] im name-Attribute.In Ihrem Fall verwenden Sie einfach
Sie haben gezeigt, nur der Fehler nicht in deinem code.
Bitte aktualisieren Sie den code und problem.
<%= check_box_tag 'ip_address[]', ip_res.ip_address, false %>
ip_address
ist attr meinem Modell IpResourceIhr meinen bisherigen code.. nach der Portierung in format wie deine Antwort, ich habe oben
undefined method 'merge' for nil:NilClass
Fehler.InformationsquelleAutor Soundar Rathinasamy