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