Dav*_*ave 9 search activerecord model ruby-on-rails ruby-on-rails-5
我正在使用Rails 5.我在我的控制器模型中有这个用于加载符合标准的特定模型...
@results = MyObjectTime.joins(:my_object,
"LEFT JOIN user_my_object_time_matches on my_object_times.id = user_my_object_time_matches.my_object_time_id #{additional_left_join_clause}")
.where( search_criteria.join(' and '), *search_values )
.limit(1000)
.order("my_objects.day DESC, my_objects.name")
.paginate(:page => params[:page])
Run Code Online (Sandbox Code Playgroud)
我的问题是,如何重写上面的内容,以便@results数组包含"MyObjectTime"和它链接到的任何潜在的"UserMyObjectTimeMatch"?
我建议寻找替代方案,但根据您提供的信息并希望避免评论中提到的潜在 10001 查询,如果您有 has_many 'user_my_object_time_matches' 设置,您可以执行以下操作:
@results = MyObjectTime.joins(:my_object,
"LEFT JOIN user_my_object_time_matches on my_object_times.id = user_my_object_time_matches.my_object_time_id #{additional_left_join_clause}")
.where( search_criteria.join(' and '), *search_values )
.limit(1000)
.order("my_objects.day DESC, my_objects.name")
.paginate(:page => params[:page])
.includes(:user_my_object_time_matches)
.map{|t| [t, t.user_my_object_time_matches]}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
409 次 |
| 最近记录: |