我在Rails应用程序中注册时遇到一些问题,出现错误
“列电子邮件不是唯一的”
尽管我知道我以前从未使用过这个特定的电子邮件地址。我以为我还是要检查数据库,然后运行:

rails console -e=test


查看Users.all以查看保存了哪些记录。但是,不仅没有一个被保存,而且我得到了错误:

**SQLite3::SQLException: no such table: users: SELECT "users".* FROM "users"
ActiveRecord::StatementInvalid: SQLite3::SQLException: no such table: users: SELECT "users".* FROM "users"**


但是在我的模式中,它清楚地说

  create_table "users", force: true do |t|
    t.string   "email",                  default: "", null: false
    t.string   "encrypted_password",     default: "", null: false
    t.string   "reset_password_token"
    t.datetime "reset_password_sent_at"
    t.datetime "remember_created_at"
    t.integer  "sign_in_count",          default: 0,  null: false
    t.datetime "current_sign_in_at"
    t.datetime "last_sign_in_at"
    t.string   "current_sign_in_ip"
    t.string   "last_sign_in_ip"
    t.datetime "created_at"
    t.datetime "updated_at"
    t.string   "provider"
    t.string   "uid"
  end


如果我继续尝试db:migratedb:migrate RAILS_ENV=development,则什么也不会发生。
有什么建议吗?

编辑:运行rails console(不是-e = test)结果是:

#<ActiveRecord::Relation [#<User id: 1, email: "", encrypted_password: "", reset_password_token: nil, reset_password_sent_at: nil, remember_created_at: nil, sign_in_count: 0, current_sign_in_at: nil, last_sign_in_at: nil, current_sign_in_ip: nil, last_sign_in_ip: nil, created_at: "2014-09-22 14:03:39", updated_at: "2014-09-22 14:03:39", provider: nil, uid: nil>]>

最佳答案

看来您尚未在测试环境中创建数据库。跑:

rake db:create RAILS_ENV=test
rake db:migrate RAILS_ENV=test


那应该解决它

07-24 16:34