【问题标题】:Could not log "sql.active_record" event. NoMethodError: undefined method `name'无法记录“sql.active_record”事件。 NoMethodError:未定义的方法“名称”
【发布时间】:2014-04-04 15:29:18
【问题描述】:

我目前正在使用 NuoDB 和 Ruby on Rails 开发应用程序

我正在使用“nuodb”gem 和“activerecord-nuodb-adapter”连接到数据库,但在执行命令时我似乎收到了日志错误。

例如,当我在操作中运行命令时:

x = GeneralLedger.where("id = ?", params[:id]).first
x.delete

这将在开发日志中输出:

[1m[35mGeneralLedger Load (2.4ms)[0m SELECT `general_ledgers`.* FROM `general_ledgers` WHERE (id = '48') FETCH FIRST 1 ROWS ONLY

[1m[35mSQL (0.3ms)[0m DELETE FROM `general_ledgers` WHERE `general_ledgers`.`id` = 48

这没关系,但是当我执行更直接的方法时:

GeneralLedger.find(params[:id]).delete

我一直收到这个错误:

Could not log "sql.active_record" event. NoMethodError: undefined method `name' for 48:Fixnum   <------ error

[1m[35mSQL (0.4ms)[0m DELETE FROM `general_ledgers` WHERE `general_ledgers`.`id` = 48

这是我在更新现有记录时遇到的另一个日志错误示例:

Could not log "sql.active_record" event. NoMethodError: undefined method `name' for 21:Fixnum
[1m[36m (0.1ms)[0m [1mbegin transaction[0m
[1m[35m (0.4ms)[0m UPDATE `general_ledgers` SET `accnt_dscr` = 'Other Expenses', `updated_at` = '2014-03-03 14:10:26' WHERE `general_ledgers`.`id` = 21
[1m[36m (0.3ms)[0m [1mcommit transaction[0m

虽然执行了sql命令并删除了记录,但是我无法获取生成的sql命令。

我尝试过使用 sqlite3 进行测试,

无法记录“sql.active_record”事件。

错误没有出现。

我一直试图找出这个日志记录错误的来源,但我找不到它。我不确定我是否会不理会它,因为命令仍在执行。

【问题讨论】:

    标签: ruby-on-rails activerecord nuodb


    【解决方案1】:

    这是在此处跟踪的驱动程序的一个已知问题; GitHub: GeneralLedger.find(params[:id]).delete throws error while logging the delete in ActiveRecord

    就您而言,错误并没有阻止执行操作,它只是被省略的日志输出。

    我希望将进一步的更新发布到上面的 GitHub 链接。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-06-12
      • 1970-01-01
      • 1970-01-01
      • 2014-10-08
      • 2016-08-09
      • 2011-07-11
      • 2015-08-19
      相关资源
      最近更新 更多