渴望加载activerecord-reputation-system

时间:2014-08-12 01:21:45

标签: ruby-on-rails eager-loading

我有一个Post模型使用Twitter的activerecord信誉系统来跟踪投票:

发布模型:

has_reputation :votes, source: :user, aggregated_by: :sum

我正在尝试加载与索引页面上所有帖子相关联的声誉。在this之后,我试图这样做:

Post.find_with_reputation(:votes, :all, { :conditions => ["post_id = ?", self.id] })

这样做,我收到以下错误:

undefined method `id' for #<PostsController:0x007f8560c88150>

如果我简化为:

Post.find_with_reputation(:votes, :all)

我在视图中收到以下错误:

undefined method `votes' for #<Post:0x007f8560a6b610>

我在哪里出错?

1 个答案:

答案 0 :(得分:0)

你可以这样使用....

@all_videos = Video.includes(:user,:reputations,:tags,:comments).where("videos.user_id !=?",current_or_guest_user.id).paginate(:page =>params[:page], :per_page => 10).find_with_reputation(:views, :all, order: "views desc")

包含使用ActiveRecordRelation

进行急切加载的帮助