【问题标题】:RubyOnRails and MySQL2 return error 500 sporadicallyRubyOnRails 和 MySQL2 偶尔返回错误 500
【发布时间】:2012-08-19 16:15:16
【问题描述】:

我有一个托管在 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'

我该如何解决这个错误?

【问题讨论】:

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


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 2011-07-07
      • 2014-09-18
      • 1970-01-01
      • 2021-11-02
      • 1970-01-01
      • 2017-07-31
      • 1970-01-01
      • 2017-02-02
      • 1970-01-01
      相关资源
      最近更新 更多