前提・実現したいこと
Railsで投稿(Post)に紐付く画像(Image)が投稿できるアプリケーションを作成しております。
Imageにdestroyアクションを追加し実行しようとしたところ下記のエラーが出ました。
発生している問題・エラーメッセージ
NameError in ImagesController#destroy uninitialized constant Image::Safe
該当のソースコード
【image.rb】
rails
1class Image < ApplicationRecord 2 belongs_to :post 3 belongs_to :user 4 has_many :likes, dependent: :destroy 5 has_many :liking_users, through: :likes, source: :user 6 has_many :comments, dependent: :destroy 7 has_many :commenting_users, through: :comments, source: :user 8 has_many :saves, dependent: :destroy 9 has_many :users, through: :saves, source: :user 10 validates :image, presence: true, unless: :text? 11 mount_uploader :image, ImageUploader 12end
【post.rb】
rails
1class Post < ApplicationRecord 2 belongs_to :prefecture 3 belongs_to :user 4 belongs_to :genre 5 belongs_to :post_top_image, dependent: :destroy 6 has_many :images 7 has_many :likes, dependent: :destroy 8 has_many :liking_users, through: :likes, source: :user 9 has_many :comments, dependent: :destroy 10 has_many :commenting_users, through: :comments, source: :user 11 has_many :histories, dependent: :destroy 12 validates :title, :pronunciation_key, :prefecture_id, :address, :genre_id, presence: true 13 mount_uploader :image, ImageUploader 14end
コントローラー
【images_controller.rb】
rails
1 def destroy 2 image = Image.find(params[:id]) 3 image.destroy 4 redirect_to post_images_path(@post) 5 end
【ビュー】
.comment-main__menu-destroy = link_to "削除", post_image_path(@post, @image), method: :delete, class: "btn-image-menu"
試したこと
コントローラーにてdestroyをdeleteに変更するとImageモデルのデータを削除することはできました。
今回はImageモデルに紐づいて削除したいモデルが複数あるため、destroyで実行したいです。
あなたの回答
tips
プレビュー