多态到多态关联

时间:2012-01-30 14:49:17

标签: ruby-on-rails ruby-on-rails-3 ruby-on-rails-3.1

我有模型Follows,其中有许多模型的多态关联。我有TimlineEvents,它具有与相同模型的多个plymorphic关联。用户有很多关注。如果我想为我的用户获取所有TimelineEvents,我需要查看每个Follow的follow_type和follow_id,并将其与TimeineEvents的actor_type和actor_id匹配。我可以用很长的arel表达式做到这一点,但很难阅读。我还有什么其他选择?我已经非常接近:

has_many :actor_events, :class_name => 'TimelineEvent', :primary_key => "followable_id", :foreign_key => "actor_id", :conditions =>  Proc.new { "actor_type = '#{self.send(:followable_type)}'" }

但它失败了因为self是User而不是从用户模型调用时的Follow。所以,我得到:用户的未定义方法`followable_type'。任何帮助赞赏。

奖金问题:我怎样才能将TimelineEvents中的所有三个多态关联合并为一个?

0 个答案:

没有答案