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
希望对您有所帮助!
我正在尝试验证 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
希望对您有所帮助!