現在、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」イベントをログに記録できませんでした。
エラーは表示されません。
このログ エラーの原因を突き止めようとしましたが、見つかりません。コマンドがまだ実行されているので、そのままにしておくかどうかはわかりません。