#本記事投稿のいきさつ
railsでアプリ作成をしていたところLoadErrorが発生し基礎知識がなかったためにハマってしまいました。
無事解決する事ができましたが忘れないように、書き残します。
また、同じエラーで困っている初心者のためになれば幸いです。
##エラー発生
itemモデルとitem_imageモデルでアソシエーションを組み,以下の記述をしたところエラーが発生
def new
@item = Item.new
@item_images = Item_image.new
end
エラー表示は以下です。
LoadError in ItemsController#new
Unable to autoload constant Item_image, expected *****/models/item_image.rb to define it
##解決まで
なるほど。アソシエーションの記入を間違えたのか。
と初学者の自分は考えitem_image.rbを確認します。
item_image.rbの記述は以下です。
class ItemImage < ApplicationRecord
belongs_to :item
end
あれ?ちゃんと書けている。
と初学者の自分は思いました。自分の仮説が外れたので、Google先生に聞いてみました。
#解決
Googleで調べたところどうやら
#####モデル名にアンダーバーを使ってもクラス名にアンダーバーはつかないとのことです。
ということでitems_controller.rbを編集。
def new
@item = Item.new
@item_images = ItemImage.new
end
無事解決することができました。
とても基本的なことですが、今までモデル名にアンダーバーを使っていなかったため、気づくこと出来なかった自分にとってはいい経験になりました。
#おわり
最後まで見ていただき、ありがとうございました。