1

我目前正在使用 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”事件。

错误不显示。

我一直在试图弄清楚这个日志记录错误来自哪里,但我找不到它。我不确定我是否会不理会它,因为命令仍在执行。

4

1 回答 1

0

这是此处跟踪的驱动程序的一个已知问题; GitHub:GeneralLedger.find(params[:id]).delete 在 ActiveRecord 中记录删除时抛出错误

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

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

于 2014-03-07T14:36:28.447 回答