我將使用通用博客示例。Rails 3查詢界面:使用關聯模型
class Post < ActiveRecord::Base
has_many :comments
end
class Comment < ActiveRecord::Base
belongs_to :post
end
查詢Post時,如何訪問其關聯(即:註釋)?
這應該是世界上最簡單的東西,但我還沒有找到任何文檔。即使是http://edgeguides.rubyonrails.org/3_0_release_notes.html#query-interface和http://m.onkey.org/2010/1/22/active-record-query-interface也無濟於事,基本上說「現在有像連接這樣的方法,並且包含像SQL語句一樣的功能。」是的,謝謝。
因此,這裏有非常簡單的事情,我想做的事情,不工作,但應該是顯而易見的就是我試圖完成:
Post.where(:comments.count >= 10)
Post.where(:comments.author_id == current_user.id)
Post.order(:comments.count)
,我們怎樣才能做到這些不訴諸紅寶石代碼SQL的泄漏(從而破壞了Active Record的目的)? 謝謝:)
Post.includes(「comments」)。where(:comments => {:author_id => current_user.id})似乎適用於第二個,儘管必須使用更少的SQLish/Railsish方法(即類似我在我的問題中所寫的方式)。由於類中的「has_many」方法調用,ARel不應要求我們在查詢中使用SQLish「include」方法。至少應該這樣聰明。 – Arcolye 2010-10-20 10:25:45
很有趣,從2年半前看到我的問題。現在這很簡單。 – Arcolye 2013-05-22 16:30:23