nto*_*ier 1 sql postgresql activerecord ruby-on-rails
我需要在我的 Rails 应用程序上执行一些自定义查询,并且想知道哪种方法更好:
results = ActiveRecord::Base.connection.execute(query)
Run Code Online (Sandbox Code Playgroud)
或者
Model.find_by_sql(query)
Run Code Online (Sandbox Code Playgroud)
一直在阅读文档,但并没有真正了解它们的性能。
execute是一种低级方法。它返回数据库驱动程序返回的任何内容,例如Mysql2::Result. 您可以用它执行任何类型的查询
find_by_sql返回相应类的 ActiveRecord 对象数组,该数组是根据结果构造的(因此传递不能生成合适结果集的查询是没有意义的)。
中途之家是连接上的方法select_all,select_values例如 等。这些方法不会创建活动记录对象,但会将原始驱动程序结果转换为数组、散列、字符串等。
| 归档时间: |
|
| 查看次数: |
1199 次 |
| 最近记录: |