自从我部署以来,我一直有这个问题,我无法弄清楚。
我会提供一些信息,如果您需要其他信息,请告诉我!谢谢!
I, [2013-09-08T12:44:31.935143 #19456] INFO -- : Started POST "/sessions" for {IP ADDRESS} at 2013-09-08 12:44:31 -0700
I, [2013-09-08T12:44:31.937969 #19456] INFO -- : Processing by SessionsController#create as HTML
I, [2013-09-08T12:44:31.938102 #19456] INFO -- : Parameters: {"utf8"=>"✓", "authenticity_token"=>"{AUTHENTICITY TOKEN}", "email"=>"mike@test.com", "password"=>"[FILTERED]", "commit"=>"Log In"}
I, [2013-09-08T12:44:31.941064 #19456] INFO -- : Completed 500 Internal Server Error in 3ms
F, [2013-09-08T12:44:31.943631 #19456] FATAL -- :
ActiveRecord::StatementInvalid (Could not find table 'users'):
app/controllers/sessions_controller.rb:6:in `create'
显然,它告诉我“用户”表不存在,但 BS,因为它确实存在。也许它找不到表?我也认为这很奇怪,因为我使用 Rails 迁移创建了表。
这是我的生产适配器仅供参考:
production:
adapter: mysql
database: {DATABASENAME}
username: {USERNAME}
password: {PASSWORD}
host: localhost
port: 3306
这是我的种子文件:
User.create([{ email: 'mike@test2.com' }, { password_digest: 'password' }])
我的用户模型:
class User < ActiveRecord::Base
has_secure_password
validates_uniqueness_of :email
end
我的会话控制器(处理登录):
class SessionsController < ApplicationController
def new
end
def create
user = User.find_by_email(params[:email])
if user && user.authenticate(params[:password])
session[:user_id] = user.id
redirect_to root_url, notice: "Logged in!"
else
flash.now.alert = "Email or password is invalid"
render "new"
end
end
def destroy
session[:user_id] = nil
redirect_to root_url, notice: "Logged out!"
end
end
我直接在数据库中创建了用户,所以问题不在于用户不存在,日志文件说表“用户”不存在,但这也是错误的......我真的不知道是什么进行中...
哦,顺便说一句,这一切都在开发中。登录,用户创建,一切。我使用 sqlite3 进行开发并切换到 mysql 进行生产,只是搞砸了一切......
任何帮助表示赞赏!