【发布时间】:2015-02-24 19:39:20
【问题描述】:
Rails 是否允许对 validates_associated 进行条件验证?我在 Rails 4.2.0 上看到以下内容。我是不是做错了?
型号:
class User < ActiveRecord::Base
has_many :books
validates_associated :books, if: :should_validate_book?
def should_validate_book?
return false
end
end
class Book < ActiveRecord::Base
belongs_to :user
validates_presence_of :title
end
Book 的 title 属性的存在验证仍在运行(Rails 控制台):
> u = User.create!
=> #<User id: 2, created_at: "2015-02-24 19:34:51", updated_at: "2015-02-24 19:34:51">
> u.books.build
=> #<Book id: nil, user_id: 3, title: nil, created_at: nil, updated_at: nil>
> u.valid?
=> false
> u.books.first.errors
=> #<ActiveModel::Errors:0x007fa256b210d8 @base=#<Book id: nil, user_id: 3, title: nil, created_at: nil, updated_at: nil>, @messages={:title=>["can't be blank"]}>
【问题讨论】:
标签: ruby-on-rails rails-activerecord