Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 如何接受没有活动记录关联的模型的属性?_Ruby On Rails_Ruby_Activerecord - Fatal编程技术网

Ruby on rails 如何接受没有活动记录关联的模型的属性?

Ruby on rails 如何接受没有活动记录关联的模型的属性?,ruby-on-rails,ruby,activerecord,Ruby On Rails,Ruby,Activerecord,我正在制作一个简单的团队分配应用程序。我有三个模型——球员、团队和回合。这个想法是建立一个玩家列表,用户可以从中选择当天实际在场的玩家进行一轮比赛。到目前为止,我有一个代码,它将数据库中的所有当前玩家随机分配给一个团队,当创建一轮时,创建一个团队 class Player < ActiveRecord::Base has_and_belongs_to_many :teams end class Team < ActiveRecord::Base has_and_belong

我正在制作一个简单的团队分配应用程序。我有三个模型——球员、团队和回合。这个想法是建立一个玩家列表,用户可以从中选择当天实际在场的玩家进行一轮比赛。到目前为止,我有一个代码,它将数据库中的所有当前玩家随机分配给一个团队,当创建一轮时,创建一个团队

class Player < ActiveRecord::Base
  has_and_belongs_to_many :teams
end

class Team < ActiveRecord::Base
  has_and_belongs_to_many :players
  belongs_to :round
end

class Round < ActiveRecord::Base
  has_many :teams
end
通过这种方式,在提交时,我可以处理这一轮所选用户的数组,并且只将这些玩家分配给一个团队。我想用

accepts_nested_attributes_for :players

在rounds模型中,但它实际上没有或不需要与玩家关联。我有没有办法做到这一点或类似的事情?我是否应该在players控制器中设置一个操作来管理复选框view/submit,然后将用户的选择存储在会话数据中

如果在表单中添加以下代码:

<% @players.each do |p| %>
  <%= label_tag do %>
    <%= check_box_tag 'players[]', p.id, false %>
    <%= "#{p.first_name} #{p.surname}" %>
  <% end %>
<% end %>
然后在params[:players]中会出现和数组ID,然后您可以使用@iced的注释


您的模型不必知道您是如何获得这些ID的,这很好,因为。

创建播放器。所有选定的参数[:播放器\u ID]-类似的东西。嘿,您可以非常简单地使用,您甚至不需要为此接受嵌套的\u属性。将块的字段_替换为:``并更新已接受的参数以包括player_id:[]您能解释一下player_id作为第一个参数的用法吗?我尝试了你建议的@cristian,但我得到了一个未定义的方法“player_id”错误。我也不知道如何在params中包含player_id:array。是否只是def round_params.require:round.permit:name,:player_id end
<% @players.each do |p| %>
  <%= label_tag do %>
    <%= check_box_tag 'players[]', p.id, false %>
    <%= "#{p.first_name} #{p.surname}" %>
  <% end %>
<% end %>