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

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

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

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

DELETE

ファイルシステムからファイル、データベースからレコードを削除することまたはメモリ内のオブジェクトの割り当てを取り消すことをさします。もしくは、HTTPプロトコルのDELETEを指すこともあります。

Ruby

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

GET

GETとはHTTPが対応するリクエストメソッドの一つです。クライアントからサーバーへ送られたURLパラメータのデータを取得する時必要がある時に使われます。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

解決済

1回答

576閲覧

Railsアプリをデプロイしたら、DELETEメソッドが使用できなくなった

niichaso

総合スコア17

Ruby on Rails 5

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

DELETE

ファイルシステムからファイル、データベースからレコードを削除することまたはメモリ内のオブジェクトの割り当てを取り消すことをさします。もしくは、HTTPプロトコルのDELETEを指すこともあります。

Ruby

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

GET

GETとはHTTPが対応するリクエストメソッドの一つです。クライアントからサーバーへ送られたURLパラメータのデータを取得する時必要がある時に使われます。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

1クリップ

投稿2018/09/27 08:14

編集2018/09/27 08:17

こんにちは、プログラミング初心者です。
説明不足や言葉の使い方が間違っている事があるかと思いますが、
何卒よろしくお願い致します。

#前提
以下の環境でフリマサイトを作成しておりました。
開発環境:Cloud9
APPサーバ:Puma
Ruby 2.4.0 Rails 5.1.6
mysql Ver 14.14 Distrib 5.5.57(development)
Cloud9では操作上異常はありませんでした。

それを今回以下の環境にデプロイしました。
サーバ:AWS EC2
Webサーバ:Nginx
APPサーバ:unicorn
Ruby 2.4.0 Rails 5.2.1
mysql Ver 14.14 Distrib 5.5.61(production)
すると、商品の削除ができなくなりました。

production.rbのログを確認すると、なぜかDELETEではなくGETになっておりました。

https://qiita.com/yuskamiya/items/ee5280dfcbca9d7216ae
上記のサイトを参考にし、application.jsに

//= require jquery_ujs

を追加したり、
views/layouts/application.html.erbに

javascript_include_tag 'application'

があるか確認を行いました。

上記の二点を修正後再度商品の削除を行おうとしたのですができませんでした。

#application.etml.erb

html

1<head> 2 <title>Market</title> 3 <%= csrf_meta_tags %> 4 <%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track': 'reload' %> 5 <%= javascript_include_tag 'application', 'data-turbolinks-track': 'reload' %>

#application.js

js

1//= require turbolinks 2//= require_tree 3//= require jquery 4//= require rails-ujs 5//= require bxslider

#product.html.erb

html

1 <%= link_to "出品を削除する", user_product_path(@product), method: :delete, class: "button2" %>

#products_controller.erb

ruby

1def destroy 2 @product = Product.find(params[:id]) 3 4 if @product.delete 5 flash[:success] = "商品を削除しました" 6 redirect_to top_path 7 else 8 flash[:danger] = "商品削除に失敗しました" 9 redirect_to user_product_path 10 end 11 end

#routes.rb

ruby

1 get '/users/products/:id', to: 'users#product', as: :user_product 2 3 delete '/users/products/:id/', to: 'products#destroy'

関係してそうなコードはこの辺りかと思います。
よろしくお願い致します。

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

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

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

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

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

guest

回答1

0

ベストアンサー

とりあえず
//= require rails-ujs

//= require turbolinks
の上に書き換えてみてください

投稿2018/09/27 09:40

sansansandodo

総合スコア248

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

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

niichaso

2018/09/27 09:53

ご回答ありがとうございます。 書き換えて再度実行したのですが、特に変化はありませんでした。
sansansandodo

2018/09/27 10:03

ではget以外が使用できないわけではなさそうですね。 //= require_tree は //= require_tree . の写し間違いでしょうか? //= require jquery //= require rails-ujs //= require turbolinks //= require_tree . の順でないとrails.jsが正しく読めずにmethod: :deleteが読めなかったと思います 上記すべての順番変えても動かなければ、link_toをbutton_toに変えてみてください。
niichaso

2018/09/27 10:34

変更後、rake assets:precompile RAILS_ENV=productionを実行したらできました!ありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問