0
我需要在我的Rails应用程序执行一些自定义查询,并想知道至极的做法是更好:差异的find_by_sql
results = ActiveRecord::Base.connection.execute(query)
或者
Model.find_by_sql(query)
去过阅读文件,但没有真正得到它们的表现。
我需要在我的Rails应用程序执行一些自定义查询,并想知道至极的做法是更好:差异的find_by_sql
results = ActiveRecord::Base.connection.execute(query)
或者
Model.find_by_sql(query)
去过阅读文件,但没有真正得到它们的表现。
execute
是一种低级方法。它会返回数据库驱动程序返回的任何内容,例如Mysql2::Result
的实例。您可以执行任何类型的查询
find_by_sql
返回适当类的ActiveRecord对象数组,从结果中构造出来(所以传递不产生合适结果集的查询是没有意义的)。
中途之家是在连接如select_all
,select_values
等。这些不创建活动记录对象的方法,但做原始驾驶员结果转换成数组,哈希,字符串等
相当清楚,感谢的人 – ntonnelier