3

我想在 ransackable 属性列表中显示 has_many 关系列。这样我就可以在下拉列表中显示它们。

我有会员模型

class Member < ActiveRecord::Base
  has_many :memberships


 def self.ransackable_attributes(auth_object = nil)
  if auth_object == 'admin'
    super
  else
    super & ['first_name', 'last_name', 'license_number', 'memberships_membership_number_cont']
  end
 end

会员模型有一些列,如会员编号,这是唯一的和一个字符串。现在在成员列表页面的下拉列表中,我想提供membership_number,以便用户可以从下拉列表中选择membership_number 并输入一个值来搜索相应的成员。

有什么建议么?

我正在考虑的下拉菜单是:

在此处输入图像描述

PS:在屏幕截图中,您可能正在寻找包含所有/包含任何选项下拉列表的下拉列表。我做的只是一个只包含任何。这就是为什么它不可见。

4

1 回答 1

3

您需要ransackable_attributes在关联模型中为该模型的自定义可搜索属性定义方法。所以你的Membership模型应该是这样的:

class Membership < ActiveRecord::Base
  belongs_to :member
  ...

  def self.ransackable_attributes(auth_object = nil)
    ['membership_number', ...]
  end
end

associations并以搜查形式指定,例如:

<%= f.condition_fields do |c| %>
  <%= c.attribute_fields do |a| %>
    <%= a.attribute_select associations: [:memberships] %>
  <% end %>
<% end %>
于 2013-09-04T01:07:42.473 回答