在rails中放置sql查询的位置?

时间:2013-04-22 07:12:12

标签: ruby-on-rails activerecord

我已经在遗留数据库之上启动了一个rails项目。没有遵循使用ORM所需的标准做法,例如为每个表分配ID字段。所以,我不会创建匹配所有表的所有模型。我需要使用众多条件运行连接多个表的查询。我将主要使用Model.find_by_sql或Model.connection.select_all方法。我应该在哪里提出这些问题?我应该将这些存储在我创建的参与查询的模型中吗? 这种情况的标准做法是什么?

2 个答案:

答案 0 :(得分:1)

尽可能地,您仍然希望通过将查询和诸如此类的东西放入模型层来将应用程序的其余部分与数据库的详细信息隔离开来。所以,是的,“存储”与正在尝试做的事情相关的正确模型对象似乎是正确的事情。

您是否可以更改数据库的架构?如果是这样,您可能希望使用迁移来慢慢使您的数据库看起来更像标准的ActiveRecord后备存储。

您可能还想查看ActiveRecord的替代方案,例如Sequel

答案 1 :(得分:-1)

最好将sql查询放在db下的sql文件夹下。您需要创建sql文件夹。