Tsu*_*oka 4 sql activerecord ruby-on-rails
我想使用find_by_sql并同时包含.
我使用find_by_sql因为我在里面写select以利用索引.如果我使用左连接,如何忽略索引.
但是,find_by_sql不返回ActiveRecord_Relation但返回Array对象,所以我不能写
like Model.find_by_sql("select * from (select * from table limit 10)table left join rel_table on ...").includes(:rel_table,...) .
Run Code Online (Sandbox Code Playgroud)
之后我可以运行两个查询和手工包含.有没有办法解决它作为一个SQL?
您无法调用includes生成的数组,但您可以手动调用Rails预加载器来执行相同的操作.
见预紧协会与的find_by_sql和AREL模仿与包括的find_by_sql.
array = Model.find_by_sql("select * from ...")
# Rails 3 and 4.0.x
ActiveRecord::Associations::Preloader.new(array, [:rel_table]).run
# Rails 4.1+
ActiveRecord::Associations::Preloader.new.preload(array, [:rel_table])
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2006 次 |
| 最近记录: |