我有一个属于“Foo”类的复选框。我有另一个“首选项”类,它设置该复选框的默认值。
我尝试使用
f.check_box :email_preference, :value => preferences.email_preference
但它不起作用。我使用此页面来创建新记录以及编辑,因此很明显,对于新记录,我希望将preferences.email_preference设置作为默认设置,然后使用foo.email_preference编辑记录。有什么建议吗?
答案 0 :(得分:0)
尝试以下
check_box_tag :preference, :email_preference, :value => preferences.email_preference
答案 1 :(得分:0)
试试这个:
value = @foo.new_record? ? preferences.email_preference : @foo.email_preference
f.check_box :email_preference, :value => value
答案 2 :(得分:0)
你在错误的地方做这件事。视图不应该关心首选项类。当创建一个新的Foo时,它应该在对象上设置:email_preference的值,然后视图将只显示它的结果。
我忘记了ActiveRecord类上的构造函数方法的名称,或者是否存在要在此处利用的回调。我会查一查。