【问题标题】:How to Fix Conditional Validations in Rails Model?如何修复 Rails 模型中的条件验证?
【发布时间】:2014-05-05 14:48:54
【问题描述】:

我的用户模型中有以下验证。我不希望它在用户是访客时运行,所以我添加了一个unless proc:

with_options :unless => :guest_user? do |user|
    before_save { |user| user.email = email.downcase }
    validates :email, presence: true, uniqueness: {case_sensitive: false}
end

这会调用guest_user? 方法,并且不应在用户是访客时运行。但是,验证在所有情况下都会运行。如何修复unless proc 使其正常工作?

【问题讨论】:

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


    【解决方案1】:

    试试

    with_options :unless => :guest_user? do |o|
        o.before_save { |user| user.email = email.downcase }
        o.validates :email, presence: true, uniqueness: {case_sensitive: false}
    end
    

    【讨论】:

    • 谢谢,成功了。 Rails 指南对此并没有说得足够多。
    猜你喜欢
    • 2014-08-29
    • 2011-10-10
    • 1970-01-01
    • 1970-01-01
    • 2016-10-11
    • 2016-04-06
    • 1970-01-01
    • 2020-06-17
    • 1970-01-01
    相关资源
    最近更新 更多