Ruby on rails 使用simple_form构建具有多个关联输入的双嵌套表单

Ruby on rails 使用simple_form构建具有多个关联输入的双嵌套表单,ruby-on-rails,associations,simple-form,multipleselection,Ruby On Rails,Associations,Simple Form,Multipleselection,如果之前有人问这个问题,请告诉我这个方向。但是我找不到它。 在这个应用程序中,我将选择多个团队中的一些用户,他们应该收到某个请求。因此,我得到了以下模型: class Request < ActiveRecord::Base has_many :request_teams has_many :teams, through: :request_teams belongs_to :club belongs_to :requester, class_name: User, for

如果之前有人问这个问题,请告诉我这个方向。但是我找不到它。 在这个应用程序中,我将选择多个团队中的一些用户,他们应该收到某个请求。因此,我得到了以下模型:

class Request < ActiveRecord::Base
  has_many :request_teams
  has_many :teams, through: :request_teams
  belongs_to :club
  belongs_to :requester, class_name: User, foreign_key: :requester_id
end

class RequestTeam < ActiveRecord::Base
  belongs_to :request
  belongs_to :team
  has_many :request_coaches
  has_many :coaches, through: :request_coaches
end

class RequestCoach < ActiveRecord::Base
  belongs_to :request_team
  belongs_to :coach, class_name: User
end
但我没能迈出下一步

= simple_form_for @request do |f|
  - for request_team in @request.request_teams
    = f.simple_fields_for :request_teams, request_team do |ft|
      = request_team.team.name
      = ft.input :coaches, as: :select, collection: request_team.team.coaches, input_html: { multiple: 'multiple' }
问题似乎在于,它将所有Coach放在params中的一个数组中,而不是将它们绑定到相应的request_团队。收到的参数如下所示:
“request”=>{“request_teams”=>{“coach”=>[“57”,“136371”]}

当我查看呈现的HTML时,表单输入名称如下所示:

name="request[request_teams][coaches][]"
我希望它看起来更像:

name="request[request_teams][some_request_team_id_here][coaches][]"

这可能吗?我做错了什么?

这确实是可能的。我只是忘记了接受嵌套的属性。

这确实是可能的。我只是忘了接受嵌套的属性。

你应该试试这样的
builder%>builder%>“
你应该试试这样的
builder%>builder%>”
name="request[request_teams][some_request_team_id_here][coaches][]"