0

我正在开发一个 RoR Webapp,它是一个仪表板。为此,我需要在执行结果计数之前执行 2 个表的 INNER JOIN

我如何使用 Active Record 在 Ruby 语法中编写它

SELECT COUNT(*) FROM feedbacks 
  INNER JOIN feedback_categories ON feedbacks.id=feedback_categories.feedback_id 
  WHERE feedback_categories.category_id=1

这两个表是feedbacks 和feedback_categories。?任何指针都会有所帮助。

4

3 回答 3

1

您可以使用连接:

Feedback.joins(:feedback_category).where(:feedback_categories => {:category_id => 1}).count

请注意,joins 和 where 子句中的 feedback_category 可以根据您的关系进行不同的复数形式。在它总是复数的地方,在连接中它可以是单数。

于 2012-09-18T07:00:50.627 回答
0

http://guides.rubyonrails.org/active_record_querying.html

这会有所帮助.. :)

于 2012-09-18T06:58:24.763 回答
0

假设您有一个名为 Feedback 的模型,只需使用它:

Feedback.count :conditions => "feedback_categories.category_id = 1",
               :joins => "INNER JOIN feedback_categories ON feedbacks.id=feedback_categories.feedback_id"
于 2012-09-18T07:36:11.837 回答