【发布时间】:2016-01-19 14:11:38
【问题描述】:
我有一个关于如何验证 Rails 模型所需更改的问题。
例如:
对于参数 lock_version,我们需要验证在尝试更新模型时该值是否始终存在。
是否有一些验证来测试更改是否存在?
谢谢
【问题讨论】:
标签: ruby-on-rails ruby
我有一个关于如何验证 Rails 模型所需更改的问题。
例如:
对于参数 lock_version,我们需要验证在尝试更新模型时该值是否始终存在。
是否有一些验证来测试更改是否存在?
谢谢
【问题讨论】:
标签: ruby-on-rails ruby
这种类型的验证由validates_presence_of处理。
好像你在找
validates_presence_of :lock_version, on: :update
我强烈建议看看http://apidock.com/rails/ActiveRecord/Validations/ClassMethods/validates_presence_of
Rails 中有很多验证,这可能是最基本的一个。
http://guides.rubyonrails.org/active_record_validations.html
【讨论】:
on: :update 参数,如果您想验证该值不为零,则添加 allow_nil: false参数
@jakub 是对的,但是如果您想要另一种验证字段的方式,您可以使用 html 验证。在需要填写的任何字段中添加required: true。即
<%= f.text_field :lock_version, required: true %>
如果用户尝试在没有此字段的情况下提交表单,他们会在该字段上弹出一条快速消息,告诉他们填写。
贾斯汀
【讨论】:
validates_presence_of :lock_version。在 Rails 控制台上运行 User.first.update!({}) 时它可以工作,但我需要该属性 :lock_version 是必需的