我正在使用Ruby on Rails 3.1,並試圖改進SQL查詢以便以高性能的方式檢索「關聯」記錄和「關聯貫穿」記錄(ActiveRecord::Associations
),以避免「N + 1查詢問題「。也就是說,我有:如何以高性能的方式檢索「關聯」記錄和「關聯」記錄?
class Article < ActiveRecord::Base
has_many :category_relationships
has_many :categories,
:through => :category_relationships
end
class Category < ActiveRecord::Base
has_many :article_relationships
has_many :articles,
:through => :article_relationships
end
在一對夫婦的SQL查詢(即,在「性能方法」,也許用on Rails的Ruby的includes()
法)我想同時檢索categories
和category_relationships
,或兩者articles
和article_relationships
。
我該怎麼做?
P.S:我提高查詢類似如下:
@category = Category.first
articles = @category.articles.where(:user_id => @current_user.id)
articles.each do |article|
# Note: In this example the 'inspect' method is just a method to "trigger" the
# "eager loading" functionalities
article.category_relationships.inspect
end
什麼查詢確切是你要優化? – iltempo 2012-03-04 15:55:04
@iltempo - 我更新了問題。 – Backo 2012-03-04 17:05:30