2015-07-21 76 views
1

我想简单地验证表单上的条款复选框。我已经实现了如下因素: http://guides.rubyonrails.org/active_record_validations.html#acceptanceRails验证接受不验证

class User < ActiveRecord::Base 
    validates :terms, acceptance: true 
end 

我已经剥离的形式回复选框仅用于调试目的。

无论通过条目:条款不验证。表单参数似乎正确传递。

Parameters: {"utf8"=>"✓", "authenticity_token"=>"+1dzwEMajQN4cL7KdGjlIw2kFSyVk/36eAhNhdydUXhLfzyT7LnCiUGdfzYt3hD/dD7evIVMiVWePv+7p+scyA==", "user"=>{"terms"=>"1"}, "commit"=>"Register"} 

当我更新验证以下我收到一条错误消息:“必须先接受条款”,无论提交的条款价值。这使我相信表单中的值没有被传递给验证。

validates :terms, acceptance: true, :allow_nil => false 
+0

您可以添加一个代码片段,显示您在控制器中更新/创建用户的位置吗? – ConnorCMcKee

回答

0

OK ......

的问题是验证助手在保存之前验证表中的行的内容。为了触发,我需要将“:terms”值分配给模型进行验证。

我只是通过params散列中的“条款”项目,期待它被验证。