3

我正在抓取一个网站,基本上,我有一个名为的表games和一个名为publisher. 一场比赛has_one :publisher

当我找到一个游戏时,比如星际争霸(与暴雪发行商合作),我创建了一个名为 Starcraft 的游戏,以及一个名为 Blizzard 的发行商。这个问题:

当我找到暴雪的另一款游戏时,比如暗黑破坏神,我创建了一个新游戏,名称为Diablo,新发行商名称为Blizzard。现在我有两个名为 name 的发布者Blizzard。我如何确保星际争霸和暗黑破坏神都指向唯一的暴雪?

我想在创建游戏之前搜索数据库,查找发行商是否存在并使用它,如果不存在则创建一个然后使用它。但这是正常/最好的方法吗?

谢谢

4

1 回答 1

2

是的,您首先找到它,如果它不存在,则创建它:

publisher = Publisher.find_or_create_by_name name: "Blizzard"
publisher.games.build name: "Diablo", <more_params_for_game>
publisher.save

or we could also use create instead of build above.
于 2012-12-21T02:24:51.390 回答