在我的应用程序中,我有用户可以创建的帖子。当我最初开始我的项目时,我从命令行创建了一些占位符帖子和用户,这样我就可以玩了。随着应用程序的进步,我创建了一个种子文件并运行了“rake db:seed'从命令行。一切正常,但我意识到我仍然有占位符帖子和用户仍在数据库中,所以我决定删除它们。我决定使用' destroy_all'从命令行销毁所有帖子和用户。方法。我只是想看看它是否会起作用,并且一切都被删除了。但是现在当我跑去耙db:seed'填充数据库,没有任何显示。当我从命令行运行Post.all或User.all时,我没有得到任何错误并且没有返回任何内容。我不确定发生了什么,但感谢您的帮助,谢谢!
User.create(name: 'John', email: 'John@gmail.com', password: '123456', password_confirmation: '123456')
User.create(name: 'Bill', email: 'Bill@gmail.com', password: '123456', password_confirmation: '123456')
Post.create([
{
user_id: 1,
category_id: 1,
title: "Tech tattoos put a working circuit board on your skin",
url: "http://www.slashgear.com/tech-tattoos-put-a-working-circuit-board-on-your-skin-25416060/"
},
{
user_id: 2,
category_id: 1,
title: "This robot can print emoji on your fingernails",
url: "http://mashable.com/2015/11/24/nailbot-printed-manicure/#Rml2qXalMmqp"
},
{
user_id: 3,
category_id: 2,
title: "Thiago Silva scores a goal from behind the goal",
url: "http://www.gyfbin.com/2015/11/hgfp.gif.html"
}])
答案 0 :(得分:2)
有一个简单的方法可以看到错误信息。您可以在create方法之后使用bang(!)(例如:User.create!(.....),Post.create!(.....))。出现任何错误时,控制台将引发错误消息。 如果你这样做的话。你可以自己搜索错误。
答案 1 :(得分:1)
destroy_all
没有删除表格。首先,您运行种子文件。因此,创建了5个用户ID(1到5)。它摧毁了USERS但没有截断。然后你销毁那些用户。再次运行种子文件。现在,使用ID(6到10)创建了5个用户。所以,不再有user_id
和1。这可能是问题所在。
解决方案1:您可以删除表(用户,帖子),然后迁移和播种。
解决方案2: 随机选择用户ID。使用:
users = User.all.collect{|u| u.id}
# same goes for category.
Post.create([
{
user_id: users.sample,
category_id: 1,
title: "Tech tattoos put a working circuit board on your skin",
url: "http://www.slashgear.com/tech-tattoos-put-a-working-circuit-board-on-your-skin-25416060/"
},
{
user_id: users.sample,
category_id: 1,
title: "This robot can print emoji on your fingernails",
url: "http://mashable.com/2015/11/24/nailbot-printed-manicure/#Rml2qXalMmqp"
},
{
user_id: users.sample,
category_id: 2,
title: "Thiago Silva scores a goal from behind the goal",
url: "http://www.gyfbin.com/2015/11/hgfp.gif.html"
}])
希望它有所帮助!