Rails - Ransack - 搜索关联

时间:2015-03-21 14:35:13

标签: ruby-on-rails ransack

用户has_many个人资料和个人资料has_many电子邮件地址。 我有用户的搜索表单,我有电子邮件的字段。我怎样才能做到这一点。

form_for @User.search do |U|
 f.text_field :name, :name_cont
 f.text_field :email, #what should I write here?

2 个答案:

答案 0 :(得分:2)

我不确定这是否是完美的方式。您可以尝试添加

用户模型中的

has_many :email, through: profiles。完成此操作后,您可能需要做的只是:user_emails_cont

同时尝试:user_profiles_emails_cont,没有很多关系。

答案 1 :(得分:1)

模型中的示例覆盖

ransacker :devices_count, formatter: proc{ |v|
    data = ContractSection.csa.includes(:contract_section_devices)
    .where("
            (select count(*) from contract_section_devices 
            where contract_section_devices.contract_section_id = contract_sections.id) = #{v.to_i}
    ").map(&:id)
  } do |parent|
parent.table[:id]

观点: :devices_count_in