所以我有一些模型設置可以每個都有評論。我已經使用has_many_polymorphs設置了它,但是我開始遇到一些問題,它不適合我應該如何使用它。Rails has_many_polymorphs反向?
例如:
class Project < ActiveRecord::Base
end
class Message < ActiveRecord::Base
has_many_polymorphs :consumers,
:from => [:projects, :messages],
:through => :message_consumers,
:as => :comment # Self-referential associations have to rename the non-polymorphic key
end
class MessageConsumer < ActiveRecord::Base
# Self-referential associations have to rename the non-polymorphic key
belongs_to :comment, :foreign_key => 'comment_id', :class_name => 'Message'
belongs_to :consumer, :polymorphic => true
end
在這種情況下,消息將不會被當項目被刪除,因爲消息是真的在關係中的父刪除。
我簡化了它的一些例子,但也有其他模型有一個消息,也有附件工作類似。
設置此項的正確方法是什麼,以便在刪除父項時刪除子項?我希望沒有一百萬張桌子,但我無法想出另一種方式來做到這一點。
是的,當一個項目被刪除時,該消息也應該被刪除。任何孤立的message_consumer條目也應該清理。 – Karl 2009-03-18 21:40:19