2015-07-19 139 views
0

我有Match模型和我有Player模型。 現在我想添加到Match兩個字段,如:playeroneplayertwo。 我想playerone有一個參考具體Player對象和playertwo有一個參考另一個Player對象了。在模型中的兩個filelds與參考相同的模型

我是想這樣的事情:

rails g model Match player:references 

但這種方式我可以只創建一個域。我無法爲此字段創建自定義名稱。

或者我可以創建playerone:integer存檔並放在這裏播放器的id(在控制器中)。但可以嗎?

回答

2

如果每場比賽總是隻有2名球員,那麼可以創建player_one_id:integer和player_two_id:整數場。在匹配模式,你就只能

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 %> 

或者編程

@match.player_one = Player.find(1) 
@match.player_two = Player.find(2) 

該模型的模型CMDLINE發生器會看像這樣的東西

rails g model Match player_one_id:integer:index player_two_id:integer:index 
相關問題