Ruby on rails Rails:当我只希望编辑集合中的一个对象时,如何在集合上使用字段_进行选择

Ruby on rails Rails:当我只希望编辑集合中的一个对象时,如何在集合上使用字段_进行选择,ruby-on-rails,Ruby On Rails,我的Rails应用程序中有一个会议模型,有很多出席者(出席模型)。创建会议的人员在Attentings表中以管理员角色获得一个条目,并且他们从select输入中选择的人员也以Attender角色添加到Attentings表中 因此,我的会议模型接受\u嵌套的\u属性\u for:Attentments,在会议控制器创建方法中,我执行以下操作: def new @meeting = Meeting.new @meeting.attendances.new end 在会议所

我的Rails应用程序中有一个会议模型,有很多出席者(出席模型)。创建会议的人员在Attentings表中以管理员角色获得一个条目,并且他们从select输入中选择的人员也以Attender角色添加到Attentings表中

因此,我的会议模型
接受\u嵌套的\u属性\u for:Attentments
,在会议控制器创建方法中,我执行以下操作:

  def new
    @meeting = Meeting.new
    @meeting.attendances.new
  end
在会议所有者返回编辑会议之前,这一切都很好

    <%= form.fields_for :attendances do |att| %>
      <%= att.label :user_id, "Who are you meeting with?" %>
      <%= att.select :user_id,
          options_for_select(current_user.company.users.map{ |user| [user.name, user.id] }, :user_id) %>
    <% end %>
因为
form.fields_for:attents do | att |
循环通过与会议相关的两个出席

    <%= form.fields_for :attendances do |att| %>
      <%= att.label :user_id, "Who are you meeting with?" %>
      <%= att.select :user_id,
          options_for_select(current_user.company.users.map{ |user| [user.name, user.id] }, :user_id) %>
    <% end %>

当会议所有者编辑现有会议时,我试图使选择字段仅显示@meeting.attentations,其中role=“attendee”


我设想有一种“Rails”方法来实现这一点,它不包括我将逻辑块放在我的_formpartial中。

fields\u for
接受第二个参数,它是一个记录数组

def编辑
@与会者=@meeting.attentations.where(角色::与会者)
终止

为什么不在控制器(编辑操作中)中获取这些内容,如
@attentations=@meeting.attentations.where(角色:“…”)
,然后在表单中循环该数组?
<%= form.fields_for :attendances, @attendees do |att| %>
  ...
form.select :user_ids, current_user.company.users.map { |user| [user.name, user.id] }, {}, multiple: true