我正在处理具有2个复选框的表单:option_one
和option_two
。Rails验证:如果带有复选框
如果选中option_two
而不是option_one
,我不想允许提交表格。
换句话说,如果有人检查option_two
,他们也必须检查option_one
。
所以在我为MyModel我写道:
validates :option_one, :presence => true, :if => option_two_active?, :message => "Dummy message."
然后在myController的,我说:
def option_two_active?
params[:option_two] == "1"
end
但它不断给我下面的错误:
NoMethodError in MyController#index
是我的方法正确吗?我怎样才能做到这一点?提前致谢。
谢谢!但是现在我得到错误'未定义的局部变量或方法'params''。如果我不能使用'params',我怎样才能从表单域获取值? – Myxtic 2012-08-15 14:43:33
@Myxtic对,我编辑了答案。看一看。 – alf 2012-08-15 15:14:23
是的,'option_two'是一个db列。我不知道我是否理解这个正确的,但似乎你的方法是将值写入数据库,然后阅读它们,对吧?在将它们写入数据库之前,我无法读取模型中的表单值吗? – Myxtic 2012-08-15 15:58:44