我的代碼行:Rails的選擇給出了未定義的方法錯誤
f.select(:birth_day, options_for_select((1..31)), {:include_blank => false }, {:id => 'select1'})
然而,當我跑我的網站的相關部分也給出了#
未定義的方法`birth_day」有誰知道爲什麼會發生這種情況? birth_day顯然不是一種方法,而是選擇標籤提交的參數的名稱。
任何幫助,將不勝感激,這種形式的所關聯
我的代碼行:Rails的選擇給出了未定義的方法錯誤
f.select(:birth_day, options_for_select((1..31)), {:include_blank => false }, {:id => 'select1'})
然而,當我跑我的網站的相關部分也給出了#
未定義的方法`birth_day」有誰知道爲什麼會發生這種情況? birth_day顯然不是一種方法,而是選擇標籤提交的參數的名稱。
任何幫助,將不勝感激,這種形式的所關聯
模型不具有方法(均未場)稱爲birth_day
。
您可能要將birth_day
字段添加到您的模型 - 或將attr_accessor :birth_day
添加到此模型(請注意,此字段不會保存在數據庫中 - 但您可以在回調中使用它)。
select_tag
和f.select
是完全不同的方法,它們不是等價的。有select_tag
你可以聲明任何你想要的,如:
form_tag '/some_path' do
select_tag :birth_day, options_for_select((1..31))
end
記住select_tag :birth_day
意味着它不與任何對象關聯(這樣birth_day
可能是控制器params[:birth_day]
中訪問),但再次,它沒有關聯與任何物體。
有,另一方面f.select
,強制你使用form_for
,e.g:形式的
form_for @user do |f|
f.select :birth_day, options_for_select((1..31))
end
這樣的定義,強制執行@user
必須有birth_day
字段中,聲明爲attr_accessor :birth_day
,或在數據庫中給出。
非常感謝,如果不適合你,我永遠不會想到這一點 – dinosaurW 2014-11-08 18:48:19