【发布时间】:2018-01-07 20:49:18
【问题描述】:
我正在尝试包含/预加载具有动态运行时条件的 has_many 关联。我得到了正确的结果,但我的变量是硬编码的,我不确定如何从包含中传递它。
我的查询:
@volunteers = Volunteer.includes({ signups: [{position: [{ eventday: :event }] }] }, :event_survey_results).where(events: { id: @event.id })
志愿者模特:
class Volunteer < ApplicationRecord
# Hard coded solution works
has_many :event_survey_results, -> { where event_id: 60 }, class_name: 'Questionnaires::SurveyResult'
end
# Dynamic solution. How to pass event_id to this from :includes ?
has_many :event_survey_results, ->(event_id) { where event_id: event_id }, class_name: 'Questionnaires::SurveyResult'
end
我需要在 :includes 语句中将 event_id 传递给 event_survey_results has_many 动态解决方案。我怎样才能做到这一点?
我正在使用 Rails 5.1
【问题讨论】:
标签: ruby-on-rails activerecord associations ruby-on-rails-5.1