有什么方法可以source_type
在 railshas_many
through
polymorphic
关联中定义运行时。
下面的代码应该给你一个简短的想法..但它不起作用..有什么建议吗?
class A < ...
has_many :message_messagables, :foreign_key => :message_id
has_many :messagables, :through => :message_messagables, :source => :messagable, :source_type => lambda { |a| a.custom_type }
def custom_type
raise "needs to be defined inside subclass"
end
end
class MessageMessagable < ...
belongs_to :messagable, :polymorphic => true #[C, D]
belongs_to :message
end
class B < A
def custom_type
"C"
end
end
class E < A
def custom_type
"D"
end
end