ruby-on-rails - 如何强制Rails查询为每个结果返回两个可能的模型?

标签 ruby-on-rails search activerecord model ruby-on-rails-5

我正在使用Rails5。我在 Controller 模型中具有此功能,可以根据条件加载特定模型...

  @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])

我的问题是,如何重写以上内容,以便@results数组同时包含“MyObjectTime”和与其链接的任何潜在“UserMyObjectTimeMatch”?

最佳答案

我建议搜索一种替代方法,但是如果您具有has_many'user_my_object_time_matches'设置,则可以利用您提供的信息并避免在注释中提及潜在的10001查询:

@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]}

关于ruby-on-rails - 如何强制Rails查询为每个结果返回两个可能的模型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42358096/

相关文章:

ruby-on-rails - 我想创建一个只做一个 Action 但不重定向到指定路径的按钮

css - 样式表中的 rails 图像(来自供应商)——我是否需要将所有库(巨大的 css 文件)从 img.png 修改为 asset-url(img.png)?

php - 用 php 表单更改 href 链接

c - 在 C 中的单个链表中搜索

ruby-on-rails - PostgreSQL 但不是 SQLite 的 ActiveRecord 错误 - GroupingError - 列必须出现在 GROUP BY 子句中或用于聚合函数

ruby-on-rails - node.js 世界中的 ActiveRecord 等价是什么?

ruby-on-rails - Rspec 方法创建错误

ruby-on-rails - 如何避免ActionController::InvalidCrossOriginRequest异常?

打开页面时 PHP 搜索显示整个数据库表

ruby-on-rails - 我如何获得在 rake 任务中工作的 Rails 控制台中工作的 Active Record 查询?