我在seeds.rb
中有以下代码,可以在我的简单Rails应用中创建记录。
Post.create(
title: "Unique Title!",
body: "this is the most amazingly unique post body ever!"
)
当运行rake db:seed
命令时,它显然会使用这些数据对db进行种子处理。如何在代码中添加检查或保护措施,使其仅进入一次,即作为唯一?如果我重新运行rake db:seed
,我不想再次添加相同的条目。
答案 0 :(得分:4)
试试这个:
Post.where( title: "Unique Title!", body: "this is the most amazingly unique post body ever!").first_or_create
希望这会对你有所帮助。
答案 1 :(得分:1)
您可以使用像seed_migration
或the_gardener
之类的宝石或其他创建种子版本的宝石,只运行一次。
其中大多数都会创建类似于迁移文件的种子文件
答案 2 :(得分:1)
使用find_or_create_by
快速预防此问题的方法。这是docs。