如何使用Rails seed.rb播种sqlite3?

时间:2015-08-29 04:42:16

标签: ruby-on-rails ruby ruby-on-rails-3 sqlite activerecord

可能涉及的人,

基本Rails应用。通过rails g model images url:string

创建了一个名为“Images”的模型

将一些jpg放在Public文件夹中并设置seed.rb文件,如下所示:

    images = Image.create([
        { url: "/public/images/01.jpg"},
        { url: "/public/images/02.jpg"},
        { url: "/public/images/03.jpg"},
        { url: "/public/images/04.jpg"},
        { url: "/public/images/05.jpg"},
        { url: "/public/images/06.jpg"},
        { url: "/public/images/07.jpg"},
        { url: "/public/images/08.jpg"},
        { url: "/public/images/09.jpg"},
        { url: "/public/images/10.jpg"},
        { url: "/public/images/11.jpg"},
        { url: "/public/images/12.jpg"},
        { url: "/public/images/13.jpg"},
        { url: "/public/images/14.jpg"},
        { url: "/public/images/15.jpg"},
        { url: "/public/images/16.jpg"},
        { url: "/public/images/17.jpg"},
        { url: "/public/images/18.jpg"},
        { url: "/public/images/19.jpg"},
        { url: "/public/images/20.jpg"}
    ])

rake db:setuprake db:seedrake db:migrate尝试播种sqlite3数据库。

我进入db/development.sqlite3并运行.databases但一无所获。我运行.tables但什么都没发现。

sqlite> .databases
seq  name             file                                                      
---  ---------------  ----------------------------------------------------------
0    main 

为什么这不会使数据库播种?

谢谢!

彼得

1 个答案:

答案 0 :(得分:0)

此时你似乎有几个问题对你不利。

您正尝试使用以下命令创建模型:

rails g model images url:string

按照惯例,您应该大写并使用模型名称的单数形式,如下所示:

rails g model Image url:string

您写道:#Ran; rake db:setuprake db:seedrake db:migrate尝试播种sqlite3数据库。"在尝试为数据库设定种子之前,必须运行rake db:migrate,否则,您将尝试使用数据为不存在的表提供种子。试试rake db:setup db:migrate db:seed然后看看会发生什么。