【发布时间】:2018-06-16 21:54:00
【问题描述】:
我有 Rails 3.2.13 应用程序,我已经活跃并在线 5 年了。几周前,我做了一些最小的更改(视图中的 html/css 更改),从那时起,我对 AWS 的所有部署似乎都已损坏。我收到了一系列似乎突然出现的 ActiveRecord 或渲染错误。令我困惑的是,我没有更改任何与 ActiveRecord 或 Rails 的任何核心组件相关的内容,但是这些服务在大约 1% 的请求上都失败了。
这不仅仅是 1 个错误,而是许多看似无关的错误,除了它们在 6 月 3 日之前从未在我的系统上发生过。当我跟踪错误的回溯时,它永远不会导致我我的代码中的问题,只是一个核心 Rails 文件。当我重新尝试刚才可能导致错误的 URL 时,它对我来说很好。就好像根本问题只出现了片刻,然后又恢复正常。而且我无法弄清楚是什么导致了这些错误。以下是我现在经常看到的一些错误:
NoMethodError: undefined method 'empty?' for nil:NilClass
来自文件/gems/activerecord-3.2.13/lib/active_record/associations/collection_association.rb:401
NoMethodError: undefined method 'has_key?' for nil:NilClass
来自文件/gems/activerecord-3.2.13/lib/active_record/attribute_methods/read.rb:72
ActiveModel::MissingAttributeError: missing attribute: item_color
我在上面看到这个带有任何属性 - 显然该属性实际上在记录中,因为对该 URL 的 99% 以上的请求都成功完成,它只发生在某些请求上。
NameError: '' is not allowed as an instance variable name
来自文件/gems/actionpack-3.2.13/lib/abstract_controller/rendering.rb:126
NameError: undefined local variable or method 'params' for #<MyProduct>
来自文件/gems/activemodel-3.2.13/lib/active_model/attribute_methods.rb:407
上面还有大约 20 个类似的错误。知道我可以做些什么来解决这个问题吗?
【问题讨论】:
-
也许在新部署中进行了这些更改,一些 gem 已更新,您的部署过程是否有可能?
-
您是否将 Gemfile.lock 保留在版本控制中?
标签: ruby-on-rails ruby ruby-on-rails-3 activerecord