0
我有一些類在Rails 2應用程序:a Group
有一些group_items
。每個group_item
具有多態性ìtem
:user
或contact
。覆蓋has_many <<功能
class Group < AR::Base
has_many :group_items
has_many :users, :through => :group_items
has_many :contacts, :through => :group_items
end
class GroupItem < Ar::Base
belongs_to :group
belongs_to :item, :polymorphic => true
belongs_to :users :conditions =>
[ "#{GroupItem.table_name}.item_type = ? ", User.to_s ],
:foreign_key => 'item_id'
belongs_to :contacts :conditions =>
[ "#{GroupItem.table_name}.item_type = ? ", Contact.to_s ],
:foreign_key => 'item_id'
validates_presence_of :group_id, :item_id, :item_type
end
一切正常。不過,我將能夠使用此功能:
@my_group.users << @my_user
@my_group.contacts << @my_contact
的關聯似乎過於複雜,這樣做:
ActiveRecord::RecordInvalid for GroupItem: item_type must be filled
有沒有辦法使用此功能,如覆蓋Group
users<<
功能?
問候
覺得尷尬對我說:如果項目沒有通過驗證,你甚至不能訪問它,看看錯誤 – apneadiving
@ apneadiving它只是具有與原始'<<'相同的行爲,當item不能被插入時它返回false。 – pierallard