从另一个模型设置Rails复选框

时间:2010-04-06 03:19:59

标签: ruby-on-rails forms

我有一个属于“Foo”类的复选框。我有另一个“首选项”类,它设置该复选框的默认值。

我尝试使用

f.check_box :email_preference, :value => preferences.email_preference

但它不起作用。我使用此页面来创建新记录以及编辑,因此很明显,对于新记录,我希望将preferences.email_preference设置作为默认设置,然后使用foo.email_preference编辑记录。有什么建议吗?

3 个答案:

答案 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类上的构造函数方法的名称,或者是否存在要在此处利用的回调。我会查一查。