我陷入了非常奇怪的问题。我在SessionsController
def create
user = User.find_by_email(params[:session][:email].downcase)
if user && user.authenticate(params[:session][:password])
sign_in user
@history=user.histories.build(:TimeLogin => Time.now.strftime("%d/%m/%Y %H:%M"))
@history.save
redirect_back_or "/recalls"
else
flash.now[:error] = 'Invalid email/password combination'
render 'new'
end
end
我正在尝试在History
模型中保存登录时间。这在开发环境中工作正常。但是当我将我的工作添加到heroku时,我在日志中收到以下错误
2013-10-29T06:47:29.542675+00:00 app[web.1]: ActiveRecord::StatementInvalid (PGError: ERROR: null value in column "id" violates not-null constraint
2013-10-29T06:47:29.542675+00:00 app[web.1]: DETAIL: Failing row contains (null, 2013-10-29 06:47:00, null, 1, 2013-10-29 06:47:29.533033, 2013-10-29 06:47:29.533033).
2013-10-29T06:47:29.542675+00:00 app[web.1]: : INSERT INTO "histories" ("TimeLogin", "TimeLogout", "created_at", "id", "updated_at", "user_id") VALUES ($1, $2, $3, $4, $5, $6)):
2013-10-29T06:47:29.542675+00:00 app[web.1]: app/controllers/sessions_controller.rb:11:in `create'
请指导我做错了什么?我无法弄清楚,因为我的开发网站同样有效 在此先感谢
答案 0 :(得分:1)
我通过添加
来修复了这个问题
set_primary_key :id
在我的模型中,就像在迁移中我创建id
为SERIAL