2016-07-15 75 views
0

我有屬於產品模型,也有模型SoldHistory模型。在產品展示頁面上創建一個表格已售SoldHistory已售:整數屬性。我正在嘗試添加一個選擇標籤到將從Branch模型中挑選對象的窗體。與選擇標籤的邏輯軌道問題

<%= 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 %> 

我試過,但它口口聲聲說無法找到ID分支=所有

請我究竟做錯了什麼?

+0

你分配給@branch的是什麼?它應該是@分支的方式 –

+0

我改變了我的答案..確保你在@branch中獲取數據 – Vishal

回答

1

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

變化@branch = Branch.find(:all)@branch = Branch.all

編輯寫:爲什麼不把@分支分配放在表單塊中?像這樣:

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

我得到這個錯誤undefined方法'to_key'爲#當我嘗試這個 –

+0

我更新了答案,我不知道你爲什麼要把在form_for幫手 –

+0

裏面的集合我這樣做是因爲我希望它提交到選定的分支..哦,這實際上工作,謝謝謝謝! –

0

這可以幫助你

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

你可以@branches在你的控制器動作沒有必要的形式標記

+0

我得到這個錯誤undefined method'to_key'for#當我試試這個時 –

+0

可能是你的@分支是零..把你的觀點退出。並檢查你的instace變量中獲得的數據 – Vishal