我在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'
如何解决此错误?
答案 0 :(得分:0)
很可能你试图在一个返回nil的活动记录对象上调用一个方法。
例如,如果你有一个名为page的模型,并且正在尝试获取该页面的字段,即Page.find(params [:id])。fields但是在数据库中没有记录那个具有该id的页面您正在尝试调用其上的方法字段,该字段对于该页面模型的实例不存在。
尝试将方法调用包含在内部,if / else语句仅在页面(或您尝试调用它的任何类)不是nil时才调用方法字段。