0

在我的Rails 3应用程序,我得到了让用户:许愿优雅的ActiveRecord链

  • 朋友(和他们的用户,太)
  • 活动(通过PublicActivity

有我需要展示我朋友的活动。

我想通过这样的链条做(和我的问题是:我怎么能做到这一点):

@activities = current_user.friends.activities 

但它不会工作,因为current_user.friends返回ActiveRecrord ::关系目的。

undefined method `activities' for #<ActiveRecord::Relation:0xc4d7770> 

我要查询他们是这样的:

@activities = PublicActivity::Activity.where(owner_id: current_user.friend_ids) 

它的工作好,但我希望它是:)

所以它不是优雅,有没有更优雅的方式来查询朋友的行为使用链接?

用户模型是这样的:

class User < ActiveRecord::Base 
    has_many :friendships 
    has_many :friends, through: :friendships # 

    has_many :activities, class_name: "::PublicActivity::Activity", as: :owner 
    # ... 
end 

class Friendship < ActiveRecord::Base 
    belongs_to :user 
    belongs_to :friend, class_name: "User" 
end 
+0

has_many':extend'可能是你在找什么?请参阅http://guides.rubyonrails.org/association_basics.html#association-extensions – house9 2013-05-11 16:00:22

回答