2016-07-15 21 views
0

Ich habe ein SoldHistory Modell, das auf ein Produkt Modell gehört und hat auch ein Zweig Modell. In der Produkt-Show-Seite gibt es ein Formular zu erstellen SoldHistoryverkauft: Integer Attribut. Ich versuche, ein Select-Tag zu dem Formular hinzuzufügen, die Objekte aus dem Branch Modell auswählen wird.Probleme mit ausgewähltem Tag-Logik Schienen

<%= form_for [@product, @product.sold_histories.build, @branch = Branch.find(:all)] do |f| %> 
    <%= f.label "Dispatch: "%> 
    <%= f.number_field :sold %> 
    <%= f.select :branch, options_from_collection_for_select(@branch, "id", "name") %> 
    <%= f.submit "Enter" %> 
    <% end %> 

habe ich versucht, diese aber es hält nicht sagen Zweig mit id finden konnte = all

Bitte, was mache ich falsch?

+0

Was ordnen Sie @branch zu? Es sollte @branches übrigens sein –

+0

ich änderte meine Antwort .. sicher sein, dass Sie Daten in @branch – Vishal

Antwort

1

In <%= form_for [@product, @product.sold_histories.build, @branch = Branch.find(:all)] do |f| %>

ändern @branch = Branch.find(:all)-@branch = Branch.all

bearbeiten zu schreiben bekommen : Warum legen Sie die @ Branch Zuweisung nicht innerhalb des Formularblocks? Gefällt mir:

<%= form_for [@product, @product.sold_histories.build] do |f| %> 
    <% @branch = Branch.find(:all) %> 
    ... 
<% end %> 
+0

Ich bekomme diesen Fehler undefined Methode 'to_key 'für # Wenn ich dies versuche –

+0

Ich aktualisierte die Antwort, ich bin mir nicht sicher, warum Sie setzen die sammlung im form_for helper –

+0

ich mache das, weil ich will, dass sie an den ausgewählten zweig gesendet wird. oh yh das funktioniert tatsächlich danke! –

0

Dies könnte Sie

<%= f.select :branch, options_for_select(@branch.collect {|a| [a.name, a.id]}) %> 

Sie helfen @branches in Ihrem Controller-Aktion keine Notwendigkeit, in Formular-Tag

+0

bekomme ich diesen Fehler undefinierte Methode 'to_key 'für # wenn ich versuche, diese –

+0

kann sein Ihr @ Branch ist nil .. Put Ausgang in Ihrer Sicht. und überprüfen, welche Daten Sie in Ihrer Instace-Variable erhalten – Vishal