2015-08-01 10 views
3

У меня есть следующий код в моем seeds.rb, чтобы создать запись в моем простом приложении Rails.Избегайте дублирования записей, созданных через seeds.rb?

Post.create(
    title: "Unique Title!", 
    body: "this is the most amazingly unique post body ever!" 
) 

При выполнении rake db:seed команды, очевидно, семена БД с этими данными. Как добавить проверку или защиту в код, чтобы он включался только один раз, т. Е. Как уникальный? Если я перезапущу rake db:seed, я не хочу добавлять эту же запись снова.

+0

Названные * «Уникальный Заголовок!» * Намеки, что вы должны добавить индекс Uniq в 'title' колонке вашего' posts' таблицы. Кроме того, вы можете добавить подтверждение для уникальности этого атрибута вашей модели. – spickermann

ответ

3

Попробуйте это:

Post.where(title: "Unique Title!", body: "this is the most amazingly unique post body ever!").first_or_create 

Надеется, что это поможет.

1

вы можете использовать драгоценный камень как seed_migration или the_gardener или что-то еще, что создает версии семян и запускает их только один раз.

большинства из них создает seedfiles подобной миграции файлы

Смежные вопросы