タイトルはbindingですが、直接的に組み込み関数のbindingやBindingクラスの事ではありません。関係はありますが。
最近、書いているAmazon ECSを検索して、ごにょごにょする処理で、ECSのResponseの中(ResponseGroup=Mediumには含まれている)にBindingという項目があります。本の種類(親書、単行本、文庫)などが取得できます。
そこで、ECSの情報をキャッシュするテーブルEcsBookというクラスを作って、binding項目もそのままbindingという項目名としました。
そうすると、DBからこのテーブルのレコードを読んでくる際
こんなエラーが発生するようになった。
実は、このエラーがこの項目bindingのせいだと気づいたのは、何時間も悩んだあげく、Ruby on Rails: beware of reflection errors [<blink> Tech notes for the greater good]というページをググって見つけたから。
英語は不得意なもので、正確には分らないですが、evalやbindingとかBugとか言っている。
これはActiveRecordがbindingというカラム名を誤認識して、リフレクションがおかしくなるのでは?と気づきました。
項目名bindingをecs_bindingに変えてみたところ見事、問題解決。
しかし分りにくいな。
コメントする