由于新的方法定义,Rails应用程序在本地工作但未部署到Heroku

时间:2014-11-10 23:43:43

标签: ruby-on-rails-4 heroku

我的rails应用程序在本地工作正常。但是,当我将它部署到Heroku时它不起作用。

以下是我定义的导致错误的方法:

def user_booth 
    Booth.find(session[:user_id])
    end 

以下是Heroku日志错误消息:

ActiveRecord::RecordNotFound (Couldn't find Booth with 'id'=3):
2014-11-10T22:56:32.634375+00:00 app[web.1]:   app/views/layouts/application.html.erb:12:in `_app_views_layouts_application_html_erb__2265993391898604291_70174020605760'
2014-11-10T22:56:32.634373+00:00 app[web.1]:   app/views/layouts/_header.html.erb:41:in `_app_views_layouts__header_html_erb___16162113934496826_70174022069520'
2014-11-10T22:56:32.631189+00:00 app[web.1]:   Booth Load (0.9ms)  SELECT  "booths".* FROM "booths" WHERE "booths"."id" = $1 LIMIT 1  [["id", 3]]
2014-11-10T22:56:32.632475+00:00 app[web.1]: Completed 500 Internal Server Error in 88ms

在为其他人阅读了这个问题之后,我尝试添加了一个' attr_accessor'对模型而言并没有解决问题。我也试过Heroku重启,这也没有帮助。我还运行了Heroku db:migrate。这些解决方案都没有奏效。任何人都可以折腾我的另一个建议吗?谢谢!

1 个答案:

答案 0 :(得分:0)

此错误:

ActiveRecord::RecordNotFound (Couldn't find Booth with 'id'=3):

并不表示您的代码存在问题,但是您的应用程序中的某些内容正在寻找ID为3的Booth,并且您的数据库(可能是Heroku Postgres或类似的)没有booth记录{ {1}} of 3.

如果我不得不猜测,我会说你可能想通过它的用户ID找到一个展位,而不是一个与会话中的用户具有相同ID的展位(这是你的方法正在做的)。

类似的东西:

id

或类似(我的Rails生锈)