2017.3.5
2017.5.26

エラー「DangerousAttributeError - Attribute is defined by Active Record」について

ActiveRecordを使っている場合、ActiveRecord用に設計したDB(カラム名)でないと、結構な確率で以下のようなエラーが出ます。

ActiveRecord::DangerousAttributeError - Attribute is defined by Active Record. Check to make sure that you don't have an attribute or method with the same name

これは、ActiveRecordで利用されているプロパティやメソッド名とDBのカラム名が同じ名前の場合に出力されるエラーのようです。自分の環境では「model_name」や「changed」といったものがダメでした。他にも「hash」や「save」といったもの使えないようです。

回避する方法としては、「safe_attributes」といったものがあるようですが、できることなら、ActiveRecord用にDBを調整した方がよさそうですね。

参考リンク

Ruby】関連記事