gpt4 book ai didi

ruby-on-rails - Rails 是否允许对 validates_related 进行条件验证?

转载 作者:行者123 更新时间:2023-12-04 03:38:22 28 4
gpt4 key购买 nike

Rails 是否允许对 validates_related 进行条件验证?我在 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"]}>

最佳答案

事实证明,对于 has_many,默认情况下 validates_related 是 ON 的。关系。要有条件地实现,您需要在 has_many 声明中添加 validate: false :

  has_many :books, validate: false

关于ruby-on-rails - Rails 是否允许对 validates_related 进行条件验证?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28704762/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com