3

我有一个托管在 Amazon EC2 服务器(带有弹性负载均衡器)上的 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'

我该如何解决这个错误?

4

1 回答 1

0

很可能您正在尝试调用返回 nil 的活动记录对象上的方法。

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

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

于 2012-08-24T17:54:40.780 回答