Ruby on rails 模型中引用同一模型的两个fileld
我有Ruby on rails 模型中引用同一模型的两个fileld,ruby-on-rails,ruby-on-rails-4,activerecord,Ruby On Rails,Ruby On Rails 4,Activerecord,我有Matchmodel和Playermodel。 现在我想在Match中添加两个字段,如:playerne和playertwo。 我想playeron引用特定的Player对象和Player两个也引用另一个Player对象 我试过这样的方法: rails g model Match player:references 但这样我只能创建一个字段。我无法为此字段创建自定义名称 或者我可以创建playerne:integer文件,并将玩家id(在控制器中)放在这里。但是这样可以吗 如果每场比赛都只
Match
model和Player
model。
现在我想在Match
中添加两个字段,如:playerne
和playertwo
。
我想playeron
引用特定的Player
对象和Player两个也引用另一个Player
对象
我试过这样的方法:
rails g model Match player:references
但这样我只能创建一个字段。我无法为此字段创建自定义名称
或者我可以创建playerne:integer
文件,并将玩家id(在控制器中)放在这里。但是这样可以吗 如果每场比赛都只有2名球员,可以创建player\u one\u id:integer和player\u two\u id:integer字段。在匹配模型中,您只需要
has_one :player_one, class_name: 'Player', primary_key: :player_one_id
has_one :player_two, class_name: 'Player', primary_key: :player_two_id
然后,您可以从表单中设置这些
<%= f.collection_select :player_one_id, Players.all, :id, :name %>
<%= f.collection_select :player_two_id, Players.all, :id, :name %>
此模型的模型cmdline生成器如下所示
rails g model Match player_one_id:integer:index player_two_id:integer:index
rails g model Match player_one_id:integer:index player_two_id:integer:index