【问题标题】:rails seed DB file轨道种子数据库文件
【发布时间】:2014-02-26 01:04:54
【问题描述】:

伙计们现在我想在我的用户表中添加数据只是为了测试它 所以我正在尝试使用此代码

users.create(:name => "admin",:user => "admin",:pass=> "123")

在种子文件中,然后当它尝试运行rake db:seed

它总是给我错误

我的表结构是

create_table :users do |t|
      t.string :name
      t.string :user
      t.string :pass

      t.timestamps

所以我想知道使用种子文件将数据添加到数据库的最佳方法是什么

【问题讨论】:

  • 主对象的未定义局部变量或方法“用户”
  • users 更改为User

标签: ruby seed


【解决方案1】:

改变

users.create(:name => "admin",:user => "admin",:pass=> "123")

User.create(:name => "admin",:user => "admin",:pass=> "123")

rails 中的模型名是单数,而表名是复数

【讨论】:

  • 当我使用命令 User.create(:name => "admin",:user => "admin",:pass=> "123") 它给了我同样的错误,但后来我使用了命令 Users.create(:name => "admin",:user => "admin",:pass=> "123") 它没有给我任何错误但是现在当我尝试使用命令 Rails c 然后用户.All 显示来自命令屏幕的数据,它给了我错误未初始化常量 Ur
  • @Astm 表示您将模型定义为 Users 而不是 User,这在 Rails 中是一种不好的做法,您最终可能会遇到问题
  • @Astm 您需要将其称为 User 而不是 Users 以避免意外行为,如果它适合您,请接受答案
  • 如何更改型号名称??我的模型现在以用户名创建
  • 把文件名app/models/users.rb改成app/models/user.rb,把class Users < ActiveRecord::Base改成class User < ActiveRecord::Base
【解决方案2】:

现在使用命令可以正常工作

Users.create(:name =>"admin",:user =>"admin",:pass=>"123")

然后在屏幕上运行命令rake db:seed然后重启服务器

我可以通过输入命令从屏幕命令中看到数据

rails c
Users.all

我的错误是我输入的

users.create(:name =>"admin",:user =>"admin",:pass=>"123")

不是

Users.create(:name =>"admin",:user =>"admin",:pass=>"123")

型号名称必须大写 “用户”不是“用户”

感谢各位帮我搭讪:)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-06
    • 2018-12-24
    • 1970-01-01
    • 1970-01-01
    • 2017-08-17
    相关资源
    最近更新 更多