0

複数のテーブルからデータを取得するための複雑なアクティブ レコード クエリを作成しています。クエリには join 、 select 、 order 、 group 、select where があります。

         @posts = Post.published.paginate(:order => 'popularity desc, id',
                                          :joins => [:comments, :images, :updates, :user],
                                          :conditions => conditions,
                                          :group => "posts.id",
                                          :select => "posts.id*,
                                          :per_page => 10, 
                                          :page => params[:page]) 

標準に従って where 、 joins などのシーケンスがどうあるべきかを知り、クエリのパフォーマンスを最大化する必要がありました。誰かがシーケンスを説明するクエリを書くことができれば、それは本当に素晴らしいことです

@posts = Post.published.joins(:comments, :images, :updates, :user).where(....
4

1 に答える 1

0

私の知る限り、順序は重要ではありません。

例は次のとおりです。

@posts = Post.published.select('posts.id').
  joins(:comments, :images, :updates, :user).
  where('users.email = ?', 'john@doe.com').
  group('posts.id')
于 2013-03-29T11:03:10.703 に答える