ruby-on-rails – heroku未定义的方法为空?当我的应用程序升级到ruby 2.0

前端之家收集整理的这篇文章主要介绍了ruby-on-rails – heroku未定义的方法为空?当我的应用程序升级到ruby 2.0前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我最近将我的Heroku应用程序从雪松10升级到雪松14,没有问题(仍然使用红宝石1.9.3).然后我尝试升级我的应用程序使用 ruby 2.0.0-p645并推送到英雄服务器.当我这样做,我不能再访问我的应用程序,我在日志中收到以下错误;
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

如果我看看第18行的wines_controller,我有以下几点:

respond_to do |format|
  format.html
  format.json {render json: @wines.as_json}
end

我以为这是我的index.html中的东西,所以我把它带回来了

%h1 Wines

只有这一行在我的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

关于我的index.html.haml文件,我上传了一个仅包含这一行的我的项目的版本;

%h1 Wines

视图中没有发生循环,我仍然收到错误.

18行是指控制器中的以下行;

respond_to do |format|

解决方法

我找到了答案.我不得不升级我的newrelic_rpm.这是我唯一的改变,现在它的作品.
-    newrelic_rpm (3.5.0)
+    newrelic_rpm (3.12.1.298)

我通过加载另一个英雄实例来测试,并将我的应用程序发送到控制器&查看剪切,没有改变,直到我指出newrelic_rpm宝石,它开始工作.所以我升级了它,而不是删除宝石,现在它的工作原理.

删除它的唯一原因是由于我寻找开发和生产之间的差异.它被标记为我的Gemfile中的生产唯一宝石.

猜你在找的Ruby相关文章