有一些模型具有has_many through
关联:
class Event < ActiveRecord::Base
has_many :event_categories
has_many :categories, through: :event_categories
validates :categories, presence: true
end
class EventCategory < ActiveRecord::Base
belongs_to :event
belongs_to :category
validates_presence_of :event, :category
end
class Category < ActiveRecord::Base
has_many :event_categories
has_many :events, through: :event_categories
end
问题在于赋值
event.categories = []
会立即从event_categories
中删除行。因此,先前的关联关系被不可逆地破坏,事件变得无效。如何在
has_many, through:
的情况下验证记录是否存在?更新:请在回答之前仔细阅读粗体标记的句子。 Rails 4.2.1
event.categories = []
赋值时,它不会阻止立即从event_categories
表中删除。 - y.bregeyevent_categories.size
会怎样呢? - Ruby Racerevent_categories
中删除相同的内容。 - y.bregey