将Rails自定义SQL查询映射到ActiveRecord模型

时间:2011-06-24 17:24:32

标签: ruby-on-rails activerecord

我正在设置一个自定义查询,该查询使用一系列OR语句和BETWEEN语句以及最终的GROUP BY ID HAVING COUNT(*)> =#{tolerance}。更不用说INNER和LEFT联接操作了。

我认为不可能使用活动记录进行设置。所以我使用Model.connection.select_all()命令来触发查询。这有效,但我怎么不将所有行映射到该特定模型?

1 个答案:

答案 0 :(得分:9)

Rails是非常强大的,特别是如果你使用Rails 3&阿雷尔。如果您实际上可以使用rails编写查询,那么我不会感到惊讶。

但是,总是有时候需要编写原始SQL。

为此,使用Model.find_by_sql(QUERY_STRING)代替Model.connection。

这样查询就会自动解析,只需确保select "model.*"