RubyOnRails和MySQL2零星地返回错误500

时间:2012-08-24 05:33:09

标签: mysql ruby-on-rails activerecord amazon-web-services mysql2

我在Amazon EC2服务器(带有Elastic Load Balancer)上托管了一个RubyOnRails应用程序,该应用程序与Amazon RDS上托管的数据库进行通信。

我很难修复应用程序偶尔返回的错误500:

NoMethodError (undefined method `fields' for nil:NilClass):
 activerecord (3.2.8) lib/active_record/connection_adapters/mysql2_adapter.rb:216:in `exec_query'

如何解决此错误?

1 个答案:

答案 0 :(得分:0)

很可能你试图在一个返回nil的活动记录对象上调用一个方法。

例如,如果你有一个名为page的模型,并且正在尝试获取该页面的字段,即Page.find(params [:id])。fields但是在数据库中没有记录那个具有该id的页面您正在尝试调用其上的方法字段,该字段对于该页面模型的实例不存在。

尝试将方法调用包含在内部,if / else语句仅在页面(或您尝试调用它的任何类)不是nil时才调用方法字段。