質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

MVC

MVC(Model View Controller)は、オブジェクト指向プログラミングにおけるモデル・ビュー・コントローラーの総称であり、ソフトフェア開発で使われている構築パターンとしても呼ばれます。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

コードレビュー

コードレビューは、ソフトウェア開発の一工程で、 ソースコードの検査を行い、開発工程で見過ごされた誤りを検出する事で、 ソフトウェア品質を高めるためのものです。

Q&A

解決済

1回答

1256閲覧

【 RubyonRails 】削除機能が動かない

pais

総合スコア1

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

MVC

MVC(Model View Controller)は、オブジェクト指向プログラミングにおけるモデル・ビュー・コントローラーの総称であり、ソフトフェア開発で使われている構築パターンとしても呼ばれます。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

コードレビュー

コードレビューは、ソフトウェア開発の一工程で、 ソースコードの検査を行い、開発工程で見過ごされた誤りを検出する事で、 ソフトウェア品質を高めるためのものです。

0グッド

0クリップ

投稿2021/06/24 02:56

初めましていつもお世話になっております。
自分は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 4142

※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で動かなかったので(他のアクションでは動きます)ルートも疑ってます。

基本的なことでお恥ずかしいのですが、何卒よろしくお願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

自己解決

ごめんなさい、解決しました。

原因はデプロイでエラーが起きていたため、gem 'webpacker'をアンインストールして
layouts/applocationを

<title>GohanApp</title> <%= csrf_meta_tags %> <%= csp_meta_tag %> <%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track': 'reload' %> </div>

としていたためでした。

gem 'webpackerをインストールして
layouts/applocationを

<title>GohanApp</title> <%= csrf_meta_tags %> <%= csp_meta_tag %> <%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track': 'reload' %> <%= javascript_pack_tag 'application' %> </div>

としたら削除できました。
RubyonRailsはjavascriptを読み込まないと削除機能が動かないそうです。
…しらなった。

お騒がせしました。

投稿2021/06/24 03:58

pais

総合スコア1

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問