【Ruby on Rails】NameError in Items#index アンダーバーをカラムにしてしまった時に解決した内容

uninitialized constant Item::ShippingCharge

というエラーです。

※ShippingChargeやitem itemsは各々のDB名やカラム名になると思います。

さて、和訳すれば「初期化されていない定数Item :: ShippingCharge」

要約すると「そんなモデル名ねーよ!」って事です。

今回自分がはまったのはviewの表示機能の時

Activehashを使った際、カラムの名前をDBへshipping_charge_idとしてました。

その時モデルもターミナルで作成したのですが、そうするとどうなるか?

class Shippingcharge < ActiveHash::Base

となります。

そして自分の場合ファイルにアンダーバーが使えない事を途中で知ったので

ファイル名は shippingcharge.rb としてました。

はい、どれが原因がもうわけわからないですね

viewでの記述方法は決まっています。

item.shipping_charge.name

です。これ以外にはありません、

答えを言います。

ファイル名は ShippingCharge.rb

内容は

class ShippingCharge < ActiveHash::Base

として下さい、これで解決です。

以上、アンダーバーをカラムに混ぜてしまった時の対処法ですが

今回の件で「指定されてない限りアンダーバー使いたくねー」と思いました。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA