3

我有一台Amazon EC2服务器上托管的RubyOnRails应用程序(带有Elastic Load Balancer),它与托管在Amazon RDS上的数据库进行通信。RubyOnRails和MySQL2偶尔返回错误500

我无法修复由aplication偶尔返回错误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

大多数情况下,您正尝试在返回nil的活动记录对象上调用一个方法。

例如,如果你有一个称为页面的模型,并试图获取该页面的字段,即Page.find(params [:id])。fields但是在操作系统中没有记录,所以你正试图调用它的方法字段,该方法字段对于你的页面模型的那个实例不存在。

尝试在内部封装方法调用,并且仅当页面(或者您试图调用它的任何类)不为零时,if/else语句才会调用方法字段。