插入模型在开发中工作但不在生产中

时间:2013-10-29 07:34:30

标签: ruby-on-rails heroku

我陷入了非常奇怪的问题。我在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'

请指导我做错了什么?我无法弄清楚,因为我的开发网站同样有效 在此先感谢

1 个答案:

答案 0 :(得分:1)

我通过添加
来修复了这个问题 set_primary_key :id 在我的模型中,就像在迁移中我创建idSERIAL

一样