在Console中创建HABTM对象

时间:2013-11-01 23:44:50

标签: ruby-on-rails ruby-on-rails-4 has-and-belongs-to-many

我无法弄清楚如何通过名为players_rosters的HABTM关系在玩家和名单之间建立关系,但在我的控制台中如何使用属性创建两者之间的关系。

Players_rosters由roster_id和player_id组成。这种关系有效,但我如何创建与手动属性的关联。

r = Roster.find(1)

r.create(:player_id => 1)

这不起作用,但我怎么能这样做?

1 个答案:

答案 0 :(得分:4)

假设您找到了名单:

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

使用设置播放器ID的示例:

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

找到第一个玩家并将其添加到ID为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可能没有必要。我不记得赋值是否触发了一个类似附加到关联的保存。