這是一個非常簡單的問題,但我是新的。我正嘗試創建一個包含從模型中填充的值的下拉菜單。但是,我沒有顯示城市名稱,而是獲取記錄ID,如:0x007fee0b7442c0(不確定這些是否稱爲ID,我認爲有另一個術語)。簡單 - 獲取記錄ID而不是所需的屬性
控制器:
@cities = City.find(:all, select: "name")
查看:
<%= f.select(:city, @cities) %>
我在做什麼錯?
這是一個非常簡單的問題,但我是新的。我正嘗試創建一個包含從模型中填充的值的下拉菜單。但是,我沒有顯示城市名稱,而是獲取記錄ID,如:0x007fee0b7442c0(不確定這些是否稱爲ID,我認爲有另一個術語)。簡單 - 獲取記錄ID而不是所需的屬性
控制器:
@cities = City.find(:all, select: "name")
查看:
<%= f.select(:city, @cities) %>
我在做什麼錯?
如果你只想從數據庫中name
屬性然後執行:
@cities = City.pluck(:name)
# => ["Sydney", "Melbourne", "Canberra"]
嘗試:select(object, method, choices, options = {}, html_options = {})
@cities = City.select(:name)
<%= f.select(:city, @cities.collect {|p| [ p.name, p.name ] }) %>
有一個指導使用collection_select這裏
http://www.fmhcc.com.au/ruby/rails/using-collection_select-in-rails/
你也可以改進通過與其做
@cities = City.pluck(:name)
如果你想在選擇框中顯示城市名稱,你想通過城市ID作爲形式參數提交@cities = City.find(:all, select: "name")
,使用此
f.select :city, @cities.map {|c| [ c.name, c.id ] }