2013-11-01 26 views
0

我無法弄清楚如何通過名爲players_rosters的HABTM關係在球員和球員之間建立關係,但是在我的控制檯中,我如何創建兩個屬性之間的關係。在控制檯中創建一個HABTM對象

Players_rosters由roster_id和player_id組成。關係有效,但我如何創建與手動屬性的關聯。

r = Roster.find(1) 

r.create(:player_id => 1) 

這不起作用,但我怎麼能這樣做?

回答

3

假設你發現名冊:

r = Roster.find(1) 
player = r.players.create(:name => 'Joe') 

使用您設定玩家的ID的例子:

r.players.create(:id => 22, :name => 'Joe') 

找到的第一個球員,並把它們添加到與22號的名單:

# Then you can assign as follows: 
player = Player.first 
roster = Roster.find(22) 
player.rosters << roster 

或者,給玩家分配到只有一個名單:

player = Player.first 
player.rosters = [Roster.find(22)] 
player.save 

save可能沒有必要。我不記得賦值是否會觸發保存,如追加到關聯中。

+0

試過這個,但沒有工作:/ player = r.players.create(:player_id => 1)我爲你的第二個例子得到了NoMethodError :( – Pierre

+0

你不會傳遞玩家id來創建。那麼'r.players.create(:number =>'47',:name =>'Joe Blow')'。如果你想在create中顯式設置id,請嘗試通過:id。' r.players.create(:id => 10,:name =>'Fred',:number =>'47')'。 –

+0

r.players.create(:id => 1)創建一個id爲1的新玩家並創建兩者之間的關係,但我怎麼能創建一個現有的球員和名冊之間的關係? – Pierre