我想在表单上简单验证一个术语复选框。我已经实现了以下内容: http://guides.rubyonrails.org/active_record_validations.html#acceptance
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 :(得分:0)
行...
问题是验证帮助程序在保存之前验证表中行的内容。为了触发这个,我需要将“:terms”值分配给模型进行验证。
我只是将params哈希与其中的“terms”项目一起传递,希望能够进行验证。