나는 모델에서 has_one 연관에 대한 속성을 검색하기 위해 ransack을 사용하려고합니다.
현재 내 모델에서 내가 가진 :랜서크 검색에 has_one : through (별칭)
class SurveyResponse < ActiveRecord::Base
belongs_to :course_schedule
has_one :instructor, through: :course_schedule
has_one :instructor_user, through: :instructor, foreign_key: "user_id", source: :user
이 내 설문 조사 응답보기에 instructor_user's
이름으로 검색하고자합니다. 내가 ransacker와 함께해야할까요? Arel에 대한 나의 이해는 매우 제한적이지만, 이렇게 할 수 있습니까? (나는 그대로이 작동하지 않습니다 알고 ..)
def self.ransackable_attributes(auth_object)
[
'created_at',
'instructor_user_name'
]
end
ransacker :instructor_user_name, type: :string do
Arel.sql('string(survey_responses.instructor_user.last_name)')
end
을 내 설문 조사 응답 컨트롤러에서 나는 현재 가지고 :
def index
@search_associations = [:course, :user]
@q = SurveyResponse.where(corporation_id: @corporation.id).ransack(params[:q])
@q.build_condition
@survey_responses = @q.result.includes(:course, :user, :course_schedule, :instructor, :instructor_user).order(created_at: :asc)
@survey_responses = paginate(@q)
end
이 어떤 도움, 자원 및 지침을 크게 감상 할 수있다.