Rails验证接受不验证

时间:2015-07-21 01:06:02

标签: ruby-on-rails validation

我想在表单上简单验证一个术语复选框。我已经实现了以下内容: 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

1 个答案:

答案 0 :(得分:0)

行...

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

我只是将params哈希与其中的“terms”项目一起传递,希望能够进行验证。