map*_*ap7 12 ruby ruby-on-rails heroku
我最近将我的Heroku应用程序从Cedar-10升级到了Cedar-14,没有任何问题(仍然使用ruby 1.9.3).然后我尝试升级我的应用程序以使用ruby 2.0.0-p645并将其推送到heroku服务器.当我这样做时,我无法再访问我的应用程序,并在日志中收到以下错误;
2015-07-09T12:27:37.480991+00:00 app[web.1]:
2015-07-09T12:27:37.480996+00:00 app[web.1]: NoMethodError (undefined method `empty?' for nil:NilClass):
2015-07-09T12:27:37.480998+00:00 app[web.1]: app/controllers/wines_controller.rb:18:in `index'
2015-07-09T12:27:37.480999+00:00 app[web.1]:
2015-07-09T12:27:37.481001+00:00 app[web.1]:
2015-07-09T12:27:37.481462+00:00 app[web.1]: Processing by WinesController#index as HTML
2015-07-09T12:27:37.481465+00:00 app[web.1]: Completed 500 Internal Server Error in 100.1ms
Run Code Online (Sandbox Code Playgroud)
如果我看看wine_controller的第18行,我有以下几点;
respond_to do |format|
format.html
format.json {render json: @wines.as_json}
end
Run Code Online (Sandbox Code Playgroud)
我认为这是我的index.html中的内容,所以我把它拿回来了;
%h1 Wines
Run Code Online (Sandbox Code Playgroud)
在我的index.html.haml中只有这一行它仍然有问题.
如果我尝试访问wines.json这可以工作并给我一份我的葡萄酒清单.使用2.0.0在我的开发盒上运行工作正常,我的所有测试都通过了.
更新:在index.html上添加控制器和更多信息
这是我的葡萄酒控制器
def index
# Search via Ransack
@q = current_user.wines.includes(:wine_rack).unconsumed.order("LOWER(winery)").search(params[:q])
@wines = @q.result.page params[:page]
@total = @q.result.sum(:qty)
respond_to do |format|
format.html
format.json {render json: @wines.as_json}
end
end
Run Code Online (Sandbox Code Playgroud)
关于我的index.html.haml文件,我上传了我的项目版本,其中只包含了这一行;
%h1 Wines
Run Code Online (Sandbox Code Playgroud)
视图中没有发生循环,我仍然得到错误.
第18行指的是我控制器中的以下行;
respond_to do |format|
Run Code Online (Sandbox Code Playgroud)
我找到了答案.我不得不升级我的newrelic_rpm.这是我改变的唯一的东西,现在它的工作原理.
- newrelic_rpm (3.5.0)
+ newrelic_rpm (3.12.1.298)
Run Code Online (Sandbox Code Playgroud)
我测试了加载另一个heroku实例并在那里发送我的应用程序几次控制器和视图的各个部分切掉,没有任何改变,直到我评论了newrelic_rpm gem并且它开始工作.所以我升级它而不是删除宝石,现在它的工作原理.
我删除它的唯一原因是我在寻找开发和生产之间的差异.它在我的Gemfile中被标记为仅生产的gem.
| 归档时间: |
|
| 查看次数: |
138 次 |
| 最近记录: |