gpt4 book ai didi

ruby-on-rails - 如果 has_many child 无效,则引发验证错误

转载 作者:行者123 更新时间:2023-12-04 05:50:03 27 4
gpt4 key购买 nike

我有一个 has_many 的问题在所有 child 都有效之前不应验证的关联。

设置

rails g scaffold Hotel name
rails g scaffold RoomCategory name hotel:references

应用程序/模型/hotel.rb
class Hotel < ActiveRecord::Base
has_many :room_categories, dependent: :destroy

accepts_nested_attributes_for :room_categories,
:reject_if =>
proc {|attributes| attributes['name'].blank?},
allow_destroy: true
end

应用程序/模型/room_category.rb
class RoomCategory < ActiveRecord::Base
belongs_to :hotel

validates :name,
presence: true,
uniqueness: { scope: :hotel }
end

这个想法是给定的 hotel不能有两个 room_categories同名。



我如何确保以下 hotel示例不验证为真?
>> hotel = Hotel.new(name: 'Example')
>> hotel.room_categories.build(name: 'Suite')
>> hotel.room_categories.build(name: 'Suite')
>> hotel.save
>> hotel.valid?
=> true

谢谢!

最佳答案

尝试这个..

accepts_nested_attributes_for :room_categories, :reject_if => lambda { |a|  a[:name].blank?  }, :allow_destroy => true

关于ruby-on-rails - 如果 has_many child 无效,则引发验证错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27940828/

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