2015-04-01 56 views
0

我一直在嘗試創建一個選擇標籤來創建一個下拉菜單,該列表將列出城市數據庫中的所有項目。我能夠做到這一點,但我不得不硬編碼一個HTML表單標籤。使用form_for創建選擇標籤,並從數據庫中提取數據

<form> 
    <%= select_tag :city, options_from_collection_for_select(City.all, :id, :city_name), class: "form-control" %> 
</form> 

現在我試圖把這段代碼轉換,這樣我可以將其放置在標籤的form_for,但我不斷收到此錯誤:從f.collection_select線「未定義的方法`city_id'」。

<%= form_for @city do |f| %> 
    <div class="form-group"> 
     <%= f.label :city_id, "City list" %> 
     <%= f.collection_select :city_id, City.all, :id, :city_name %> 
    </div> 
<% end %> 

我試着刪除:city_id,但後來我得到一個「錯誤的參數數目(3 4..6)」,我代替:與零city_id和我得到同樣的未定義的方法錯誤。

我新來的鐵軌,所以任何幫助將不勝感激!

回答

0

form_for幫手包裝一個對象(在你的情況下,這是@city),然後創建表單域直接填充它的屬性。因此,根據您的錯誤消息,聽起來像@city不響應:city_id。換句話說,@city.city_id會給出同樣的錯誤。所以你需要弄清楚你打算在這裏填寫什麼屬性。

+0

謝謝!現在我懂了。我的城市數據庫中沒有「city_id」,我只是使用了「id」而已。這是一個非常簡單的問題,但我還不知道Rails的來龍去脈。 – AClement 2015-04-01 03:07:21

相關問題