Rails 模型验证 - 未定义的方法错误

Rails model validation - undefined method error

我正在尝试验证 rails 中参数的存在。这是 User.rb

的代码片段
  validates :terms_of_service, presence: true 
  validates :privacy_policy, presence: true

理想情况下,如果此参数不存在,我希望 rails 抛出错误

这里是客户端发送的示例参数列表

Parameters: {"username"=>"f", "email"=>"f@f.com", "password"=>"[FILTERED]", "password_confirmation"=>"[FILTERED]", "confirm_success_url"=>"http://localhost:4000", "config_name"=>"default", "registration"=>{"username"=>"f", "email"=>"f@f.com", "password"=>"[FILTERED]", "password_confirmation"=>"[FILTERED]", "confirm_success_url"=>"http://localhost:4000"}}

但是,rails 抛出以下错误

NoMethodError (undefined method `terms_of_service' for #<User:0x007f16d402e788>):

为什么当我实际测试一个参数时它认为应该有一个 terms_of_service 方法?

添加 attr_accessor,它将设置 getter 和 setter 方法,即使它是非列属性也将对其进行验证

attr_accessor :terms_of_service

希望对您有所帮助!