前提・実現したいこと
railsを利用して、インスタグラムのようなハッシュタグ機能のついた投稿アプリケーションを作成しようとしております。
その際に、投稿したものを削除する機能を実装中に以下のエラーメッセージが発生しました。
モデルはphoto,hashtag,photo_hashtagです。
発生している問題・エラーメッセージ
Mysql2::Error: Unknown column 'photo_hashtags.' in 'where clause'
該当のソースコード
ruby
1 def destroy 2 photo = Photo.find(params[:id]) 3 if photo.user_id == current_user.id 4 if photo.destroy 5 redirect_to olde_index_path, notice: "comleted" 6 else 7 redirect_to olde_index_path, alert: "uncompleted" 8 end 9 end 10 end
ruby
1class Photo < ApplicationRecord 2 belongs_to :user 3 has_many :photo_hashtags, dependent: :destroy 4 has_many :hashtags, through: :photo_hashtags
ruby
1class Hashtag < ApplicationRecord 2 has_many :photo_hashtags 3 has_many :photos, through: :photo_hashtags 4 5 validates :hashname, presence: true, length: {maximum:99} 6end
ruby
1class PhotoHashtag < ApplicationRecord 2 belongs_to :photo 3 belongs_to :hashtag 4 validates :photo_id, presence: true 5 validates :hashtag_id, presence: true 6end
試したこと
データベースの表示を確認しました。投稿は中間テーブルを含め、全てに成功しております。
補足情報(FW/ツールのバージョンなど)
photoモデルのdependent: :destroyをdependent: :delete_allにしたら解決されました。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。