Rails 5:validation复选框的接受程度
我有一个带有一些嵌套字段的注册表单,在这个表单中我添加了一个服务条款的复选框。
我正在尝试validation何时选中复选框,如果没有则返回错误。
validates_acceptance_of :agreement, :allow_nil => true, :accept => true, :on => :create
我有一个布尔列,在accounts表中设置为默认值。
add_column :accounts, :agreement, :boolean, default: false
此外,我已将:agreement
添加到允许的控制器参数中。
这是forms:
"form-control" %> "form-control" %> "form-control" %> "form-control" %> "form-control" %> "form-control" %> "form-control" %> "form-control", :id=>"sign-frm-input" } %> I agree to the 1) %>. 'btn btn-primary' %>
但它返回表格错误agreement must be accepted
即使我接受它。 任何想法我可能会遗漏的东西!
尝试: validates :agreement, acceptance: {accept: true} , on: :create, allow_nil: false
如果您要validation接受,则不希望:allow_nil => true
。
您可以更改模型validation并进行测试。
validates :agreement, inclusion: {in: [true]}
或者您可以使用其他validation
validates :agreement, acceptance: { accept: true }