如何使用db:seed播种数据

时间:2015-05-24 06:27:25

标签: ruby-on-rails

所以我花了一段时间寻找答案,但也许我不明白这些原则。我有一个名为user的表,它有两个名为name和value的字段。我已经迁移了这个,并创建了一个模型和控制器。

我的迁移文件如下:

 class CreateUsers < ActiveRecord::Migration
   def change
     create_table :users do |t|
       t.string :name
       t.integer :value

       t.timestamps null: false
     end
   end
 end

我使用以下内容来播种数据

Users.create!([{ name: 'Chicago' , value:'12'}, { name: 'Coppo' , value:'15'} , { name: 'Bilbo' , value:'13' }, { name: 'Steve' , value:'12'}, { name: 'Shazza' , value:'11'}])

接着是

 rake db:seed

但我继续得到同样的错误:

 NameError: uninitialized constant Users

1 个答案:

答案 0 :(得分:2)

您缺少命名约定 对于类User,您应该有一个名为users的数据库表。

数据库表 - 多个(例如,用户,user_profiles) 模型类 - 单数形式,每个单词的首字母大写(例如,User,UserProfile)。

模型行动将是:

User.create(Hash)
UserProfile.create(Hash)

将种子代码更改为:

User.create!([{ name: 'Chicago' , value:'12'}, { name: 'Coppo' , value:'15'} , { name: 'Bilbo' , value:'13' }, { name: 'Steve' , value:'12'}, { name: 'Shazza' , value:'11'}])