1
나는 Project::Contribution
User
belongs_to
것을, 그리고 User
has_one
User::Profile
있습니다.Ransacker 및 Arel는
first_name
및 last_name
내가 나 자신의 사용자 프로필 first_name
및 last_name
내 기여를 필터링 할 수 있습니다 것 ransacker를 만들 User::Profile
에 포함 된 필드입니다.
어떻게 달성 할 수 있습니까?
이것은 내가 지금까지 뭘하려 : 내가 지금처럼 profile
테이블에 액세스 할 수 없기 때문에 parent.table[:profile_first_name]
및 parent.table[:profile_last_name]
:
# admin/contribution.rb
filter :user_full_name_cont
# models/user.rb
ransacker :full_name do |parent|
Arel::Nodes::InfixOperation.new('||', parent.table[:profile_first_name], parent.table[:profile_last_name]) # error
end
이 때문에 실패합니다.
# models/user/profile.rb
ransacker :full_name, formatter: proc { |v| v.mb_chars.downcase.to_s } do |parent|
Arel::Nodes::NamedFunction.new('LOWER',
[Arel::Nodes::NamedFunction.new('concat_ws',
[Arel::Nodes.build_quoted(' '), parent.table[:first_name], parent.table[:last_name]])])
end
# admin/user.rb
filter :user_profile_full_name_cont
: