我的代码行: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