我正在抓取一个网站,基本上,我有一个名为games的表和一个名为publisher的表。一款游戏has_one :publisher。
当我找到一个游戏,比方说,星际争霸(发行商是暴雪),我创建了一个游戏,游戏的标题是星际争霸,发行商的名字是暴雪。问题是:
当我找到暴雪的另一款游戏,比如暗黑破坏神,我创建了一个新游戏,标题为Diablo,发行商为Blizzard。现在我有两个名为Blizzard的发布者。我如何确保星际争霸和暗黑破坏神都指向唯一的暴雪?
我想在创建游戏之前搜索数据库,查找发行商是否存在并使用它,如果它不存在,则创建一个发行商,然后使用它。但这是正常的/最好的方法吗?
谢谢
发布于 2012-12-21 10:24:51
是的,您首先找到它,如果它不存在,则创建它:
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.https://stackoverflow.com/questions/13983445
复制相似问题