初めましていつもお世話になっております。
自分はrailsで簡単な画像投稿アプリを作成しています。
初心者で質問の仕方がわかりにくかったらなんなりとご指摘ください。
前提・実現したいこと
RubyonRailsで簡単な画像投稿アプリを作成しているが、しかしデータのの削除機能が動かないため削除したい。
エラーメッセージ自体が出ず、なぜ削除機能が動かないのかがわかりません。
私はモデルのアソシエーションが誤っているのではないかと疑っています。
発生している問題・エラーメッセージ
エラーメッセージが出てないので、ターミナルの実行結果を載せます。
Started GET "/tweets/30" for ::1 at 2021-06-24 11:29:03 +0900 Processing by TweetsController#show as HTML Parameters: {"id"=>"30"} Tweet Load (0.3ms) SELECT `tweets`.* FROM `tweets` WHERE `tweets`.`id` = 30 LIMIT 1 ↳ app/controllers/tweets_controller.rb:43:in `set_tweet' Rendering tweets/show.html.erb within layouts/application User Load (0.4ms) SELECT `users`.* FROM `users` WHERE `users`.`id` = 7 ORDER BY `users`.`id` ASC LIMIT 1 ↳ app/views/tweets/_hedaer.html.erb:10 Rendered tweets/_hedaer.html.erb (Duration: 4.4ms | Allocations: 1724) ActiveStorage::Attachment Load (0.4ms) SELECT `active_storage_attachments`.* FROM `active_storage_attachments` WHERE `active_storage_attachments`.`record_id` = 30 AND `active_storage_attachments`.`record_type` = 'Tweet' AND `active_storage_attachments`.`name` = 'image' LIMIT 1 ↳ app/views/tweets/show.html.erb:4 ActiveStorage::Blob Load (0.4ms) SELECT `active_storage_blobs`.* FROM `active_storage_blobs` WHERE `active_storage_blobs`.`id` = 26 LIMIT 1 ↳ app/views/tweets/show.html.erb:4 Rendered tweets/show.html.erb within layouts/application (Duration: 9.0ms | Allocations: 3959) Completed 200 OK in 15ms (Views: 11.4ms | ActiveRecord: 1.5ms | Allocations: 8427) Started GET "/rails/active_storage/disk/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaDdDRG9JYTJWNVNTSWhibUZyTmpWcVpHb3dlWGQ2YzIxdVlXRjRkMjUzYldWeU16ZHBkZ1k2QmtWVU9oQmthWE53YjNOcGRHbHZia2tpVTJsdWJHbHVaVHNnWm1sc1pXNWhiV1U5SWtWdU1XMDNObGhYTkVGRmRIVlRXUzVxY0dWbklqc2dabWxzWlc1aGJXVXFQVlZVUmkwNEp5ZEZiakZ0TnpaWVZ6UkJSWFIxVTFrdWFuQmxad1k3QmxRNkVXTnZiblJsYm5SZmRIbHdaVWtpRDJsdFlXZGxMMnB3WldjR093WlUiLCJleHAiOiIyMDIxLTA2LTI0VDAyOjMzOjU5LjQwNloiLCJwdXIiOiJibG9iX2tleSJ9fQ==--ffa7ba596354d41abca26c8c9db4b947b5b0bc29/En1m76XW4AEtuSY.jpeg?content_type=image%2Fjpeg&disposition=inline%3B+filename%3D%22En1m76XW4AEtuSY.jpeg%22%3B+filename%2A%3DUTF-8%27%27En1m76XW4AEtuSY.jpeg" for ::1 at 2021-06-24 11:29:03 +0900 Processing by ActiveStorage::DiskController#show as JPEG Parameters: {"content_type"=>"image/jpeg", "disposition"=>"inline; filename=\"En1m76XW4AEtuSY.jpeg\"; filename*=UTF-8''En1m76XW4AEtuSY.jpeg", "encoded_key"=>"eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaDdDRG9JYTJWNVNTSWhibUZyTmpWcVpHb3dlWGQ2YzIxdVlXRjRkMjUzYldWeU16ZHBkZ1k2QmtWVU9oQmthWE53YjNOcGRHbHZia2tpVTJsdWJHbHVaVHNnWm1sc1pXNWhiV1U5SWtWdU1XMDNObGhYTkVGRmRIVlRXUzVxY0dWbklqc2dabWxzWlc1aGJXVXFQVlZVUmkwNEp5ZEZiakZ0TnpaWVZ6UkJSWFIxVTFrdWFuQmxad1k3QmxRNkVXTnZiblJsYm5SZmRIbHdaVWtpRDJsdFlXZGxMMnB3WldjR093WlUiLCJleHAiOiIyMDIxLTA2LTI0VDAyOjMzOjU5LjQwNloiLCJwdXIiOiJibG9iX2tleSJ9fQ==--ffa7ba596354d41abca26c8c9db4b947b5b0bc29", "filename"=>"En1m76XW4AEtuSY"} Completed 404 Not Found in 1ms (ActiveRecord: 0.0ms | Allocations: 705)
該当のソースコード
コントローラー
ruby
1【略】 2 before_action :set_tweet, only: [:show, :edit] 3 4 def index 5 @tweets = Tweet.includes(:user).order('created_at DESC') 6 end 7 8 def new 9 @tweet = Tweet.new 10 end 11 12 def create 13 @tweet = Tweet.new(tweet_parmas) 14 if @tweet.save 15 redirect_to root_path 16 else 17 render :new 18 end 19 end 20 21 def show 22 end 23 24 def edit 25 end 26 27 def destroy 28 @tweet = Tweet.find(params[:id]) 29 @tweet.destroy 30 redirect_to root_path 31 32 end 33 34【略】 35 36 private 37 38 def set_tweet 39 @tweet = Tweet.find(params[:id]) 40 end 41・ 42・
※binding.pry を destroyに試しましたがターミナル に反映されませんでした
ビュー
ruby
1 <%= render partial: "hedaer",locals:{ tweet: @tweet}%> 2 3 <div class="content"> 4 <%= image_tag @tweet.image, class: "show-item-img" if @tweet.image.attached? %> 5 <h1 class="card-title"> <%= @tweet.title%> </h1> 6 7 <p class="card-text">食材: <%= @tweet.catch_copy%></p> 8 9 10 <p class="card-text">作り方: 11 <div class="retern"> 12 <%= @tweet.recipe%></p> 13 </div> 14 <a href="https://twitter.com/share?url=#{request.url}","><i class="fab fa-twitter"></i>twitter</a> 15 <br> 16 <%= link_to "削除", tweet_path(@tweet), method: :delete %> 17 18 19 </div>
ryby
1 2Rails.application.routes.draw do 3 devise_for :users 4 get 'tweets/index' 5 root to: 'tweets#index' 6 resources :tweets 7 8end 9 10
該当のtweetのモデル
ruby
1class Tweet < ApplicationRecord 2 3 belongs_to :user 4 has_one_attached :image 5 6 with_options presence: true do 7 validates :image 8 validates :title 9 validates :catch_copy 10 validates :recipe, length: { maximum: 1000 } 11 12 end 13 14end 15
試したこと
とにかく、調べて一般的なことは試しました(レイルズの削除機能の追加動画の通りにやり直すなど)
個人的にはbinding.pryがdestroyで動かなかったので(他のアクションでは動きます)ルートも疑ってます。
基本的なことでお恥ずかしいのですが、何卒よろしくお願い致します。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。