我希望能夠從現有的一系列城市中選擇一個城市。從一組選項中選擇助手選擇?
我已經存儲了城市在ControllerName控制器的陣列作爲一個全局變量
$cities = ["city1"...."city20"]
,我希望能夠通過訪問他們:<%= p.select(:city, $cities{ |c| [c.name, c.id]}) %>
後來我收到錯誤消息undefined method name for 'city1'
。
如何從現有數組中選擇? 我應該爲城市做一些控制器嗎?
更新#1
我來使這個代碼和
$cities=['city1',...'city20']
@city = Array.new
i = $cities.size
i.times do |x|
@city[x] = City.new
@city << $cities[x]
end
代替undefined method
名稱」爲 「City1」:字符串I got
未定義的方法name' for "City20":String
PS :城市表有一個名爲'name'的列,所以問題是不是特別有
更新#2:問題解決
讀這一點後,Rails文檔,我能夠讓我的代碼稍加改進,我可能實際上解決問題。
在我的形式,我已編輯的代碼是:
<%= p.select(:city, options_for_select(@cities_array))%>
而且在我ControllerName控制器,我已經把這個:
$cities.length.times do |x|
@city = City.new({:name => $cities[x]})
@city.save
end
@cities_array = City.all.map { |city| [city.name, city.id] }
而這恰是到了。
如果您有其他解決方案,無論是更簡單還是更復雜,請分享它作爲答案。
如果'City'是一個模型,那麼你最好將你的城市添加爲種子,現在你的代碼會在你每次打電話給你的動作時將你所有的城市添加到db中 – Aguardientico
這是對的,我再次掙扎**找到一種方法來設置他們一勞永逸我可以把它們作爲**種子** –
順便說一句:最簡單的解決方案(我認爲):'p.select:city.pluck(:name,:id)'db/seeds.rb'中的 – Aguardientico