0
我無法實現我想要的東西,但我有感覺它可能在Rails中。Rails:關聯模型唯一的多個外鍵約束
我有兩個模型和一個關聯。
class Object < ActiveRecord::Base
attr_accessible :object_types_asso, :object_types_asso_attributes
accepts_nested_attributes_for :object_types_asso, :allow_destroy => true
has_many :types, :through => :object_types_asso
has_many :object_types_asso
end
class Types < ActiveRecord::Base
attr_accessible :object_types_asso, :object_types_asso_attributes
accepts_nested_attributes_for :object_types_asso, :allow_destroy => true
has_many :object, :through => :object_types_asso
has_many :object_types_asso
end
class ObjectTypesAsso < ActiveRecord::Base
attr_accessible :object_id, :type_id
belongs_to :object
belongs_to :types
end
我想有一個有效記錄的唯一性約束上ObjectTypesAsso
,這樣我就不能有兩個ObjectTypesAsso
記錄具有相同:object_id
和:type_id
,因此,當一個存在,它就會被更新,而不是創造的新的(如果不可能更新,則忽略)。
我怎麼能做到這一點?
問題的第二部分是我怎麼能管理阿索斯做這樣的事情:
object.update_attributes({:object_types_asso_attributes => [{:types_id => xx}, {:types_id => yy}]})
,並與types_id=xx
和types_id=yy
如果他們不存在創建ASSO,並刪除types_id=zz
因爲如果它存在它不在列表中。這個想法是有一個複選框列表,更新它檢查與否的關聯。
我也可以這樣做嗎?
感謝
你在尋找has_many:通過? – fotanus
你的權利,我忘了在我的例子中添加它。但那不是我所期待的。 –