我有以下型号:
class Parcel < ApplicationRecord
belongs_to :user
has_many :items
has_many :custom_declarations, :through => :items
accepts_nested_attributes_for :items
validates :custom_declarations, :presence => true , :on => :update, :if => :parcel_requested
def parcel_requested
status_changed?(from: nil, to:'REQUESTED')
end
class Item < ApplicationRecord
belongs_to :user
belongs_to :parcel, optional: true
has_many :custom_declarations
accepts_nested_attributes_for :custom_declarations,:reject_if => :all_blank
class CustomDeclaration < ApplicationRecord
belongs_to :item
我正在尝试确保此宗地中包含的每个项目都有自定义声明
因此,如果Parcel.items.first.custom_declarations.valid?
返回true
,则整个宗地变为有效,即使Parcel.items.second.custom_declarations
没有值。
如果我直接检查一个项目/ items / 1 /会更容易,但我通过包裹查看has_many项目,并且每个项目都有自定义声明。
是否有内置的方式来实现这一目标?