【问题标题】:Can I change the validation rules required for different actions?我可以更改不同操作所需的验证规则吗?
【发布时间】:2011-12-02 12:01:17
【问题描述】:

我有一个看起来像这样的模型 -

class Car < ActiveRecord::Base
  validates :name,:presence =>true
end

我是否可以将其设置为在执行创建操作时不需要汽车名称,但在执行“编辑”操作时需要它?

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-3 validation


    【解决方案1】:

    是的,这是可能的:

    class Car < ActiveRecord::Base
      validates :name, presence: true, on: :update
    end
    

    不妨看看Active Record Validations and Callbacks Guide

    【讨论】:

    • 只是为了完成答案,您可以做的不仅仅是 :update 或 :create (它们是 save 和 valid? 方法的默认上下文)。您可以使用任何您想要的符号,然后传递相同的符号以保存或有效?触发特定验证的方法:如果你有一些验证,比如“on::some_context”,你可以调用“obj.save(context::some_context)”或“obj.valid?(:some_context)”。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多