簡體   English   中英

Rails with Devise,在localhost上正常運行,在Heroku上失敗

[英]Rails with Devise, works fine on localhost, fails on Heroku

在我的Heroku日志中:

Processing by UsersController#create as HTML
Parameters: {"utf8"=>"✓", "authenticity_token"=>"YsNr73owFsrgM4HX5QDq304ot4gBhGBx1SlOkq+hAxg=", "user"=>{"housing_type"=>"Sublets / Shares", "area_id"=>"1", "subarea_id"=>"", "rent_min"=>"", "rent_max"=>"", "bedroom_min"=>"0", "cat"=>"0", "dog"=>"0", "pic"=>"0", "email"=>"lol.i.laugh@gmail.com"}, "commit"=>"Start your Free Trial: 10 leads"}

app/controllers/users_controller.rb:16:in `create'
Completed 500 Internal Server Error in 6ms
NameError (undefined local variable or method `confirmed_at' for #<User:0x000000048a57b0>):
     app/models/user.rb:81:in `password_required?'

因此它在#create的第16行失敗,這是@ user.save部分:

@user = User.new(params[:user])
if @user.save

並且在user.rb文件中為Devise聲明了password_required方法:

  def password_required?
    super if confirmed?
  end

我已經運行rake db:migrate並檢查遷移狀態以確保它已在Heroku上完成。 我也跑了

 heroku run rails console
 irb(main):012:0> User
 => User(id: integer, email: string, trial_count_left: integer, created_at: datetime, updated_at: datetime, rent_min: integer, rent_max: integer, bedroom_min: integer, cat: boolean, dog: boolean, pic: boolean, housing_type: string, subarea_id: integer, area_id: integer, encrypted_password: string, reset_password_token: string, reset_password_sent_at: datetime, remember_created_at: datetime, sign_in_count: integer, current_sign_in_at: datetime, last_sign_in_at: datetime, current_sign_in_ip: string, last_sign_in_ip: string, confirmation_token: string, confirmed_at: datetime, confirmation_sent_at: datetime, unconfirmed_email: string)

已確認

最后,我也經歷了

 heroku run rails console
 irb(main):012:0> User.new( < manual params here >).save

通過解釋器,一切正常。

可能出什么問題了? 我寧願不重置整個數據庫,因為它是生產數據庫。

謝謝

由於某種原因,“ heroku重新啟動”成功了。 從技術上來講,我不確定后台發生了什么,但我很高興它現在正在工作。 我將查閱Heroku文檔,以了解是否可以找到引起這種情況的潛在技術原因。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM