1

現在、NuoDB と Ruby on Rails を使用してアプリケーションを開発しています。

「nuodb」ジェムと「activerecord-nuodb-adapter」を使用して DB に接続していますが、コマンドを実行するとログにエラーが発生するようです。

たとえば、アクションでコマンドを実行すると、次のようになります。

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 に答える