【问题标题】:Optimizing rails query and associations优化 Rails 查询和关联
【发布时间】:2012-01-30 23:02:49
【问题描述】:

我的应用程序中有以下关联:

# user.rb
has_many :posts, :dependent => :destroy
has_many :likes, :dependent => :destroy

# post.rb
belongs_to :user
has_many :likes, :dependent => :destroy


# like.rb
belongs_to :user
belongs_to :post

当我尝试访问用户喜欢的所有帖子时,我正在使用以下循环

@user = User.find(params[:id])
@posts_user_likes = []
@user.likes.each do |like| # TODO optimize
  @posts_user_likes << Post.find_by_id(like.post_id)
end

但这似乎效率很低。

使用不同的关联或不同的循环方式来改进我的代码的最佳方法是什么?

【问题讨论】:

    标签: ruby-on-rails associations memory-efficient performance


    【解决方案1】:

    has_many :liked_posts, :through =&gt; :likes, :class_name =&gt; 'Post'添加到User,然后调用User.find(params[:id]).liked_posts

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-12-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多