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

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

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

Haml(HTML abstraction markup language)は、HTML/XHTMLを効率的に記述するためのマークアップ言語および記法です。

Ruby

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

Ruby on Rails

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

リダイレクト

プログラムの入力元や出力先を通常とは別の場所に転送させることをリダイレクトと呼びます。

ルーティング

ルーティングとは、TCP/IPネットワークにおいて、目的のホストまでパケットを送る為のパス選定のプロセスを言います。

Q&A

解決済

3回答

2002閲覧

Rails ECサイトの仕様設計についてアドバイスをください

satoshi_n61

総合スコア10

Haml

Haml(HTML abstraction markup language)は、HTML/XHTMLを効率的に記述するためのマークアップ言語および記法です。

Ruby

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

Ruby on Rails

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

リダイレクト

プログラムの入力元や出力先を通常とは別の場所に転送させることをリダイレクトと呼びます。

ルーティング

ルーティングとは、TCP/IPネットワークにおいて、目的のホストまでパケットを送る為のパス選定のプロセスを言います。

0グッド

2クリップ

投稿2020/06/05 10:26

編集2020/06/05 11:35

前提・実現したいこと

Railsで簡易的なECサイトをつくっています。
商品の詳細ページから購入ボタンを押して一覧画面(index)に戻り、「購入が完了しました」などのフラッシュメッセージを出すという仕様にしたいと考えています。
ルーティングとコントローラーの設計をどうすべきかご教授ください。

発生している問題・エラーメッセージ

Routing Error No route matches [GET] "/order"

該当のソースコード

routes.rb

rails

1 2 3Rails.application.routes.draw do 4 devise_for :users 5 root to: 'products#index' 6 resources :products, only: :show do 7 resources :order, only: :create 8 end 9 resources :users, only: [:show, :edit, :update] 10end 11

orders.controller.rb

rails

1lass OrdersController < ApplicationController 2 3 def create 4 redirect_to root_path, notice: '購入が完了しました。' 5 end 6 7end

show.html.haml

rails

1.show 2 .show__img 3 %img(src="" alt="")/ 4 .show__data 5 .show__data__name 6 商品の名前 7 .show__data__date 8 発送日 9 .show__data__price 10 値段 11 .show__data__btn 12 = link_to product_order_index_path do 13 %button 購入する 14 .show__exolan 15 商品説明 16.producer 17 .producer__voice 18 %p 生産者の声

試したこと

createアクションを使ってその中にフラッシュメッセージとリダイレクトをさせてみましたが、うまくいきません。
フォームを送信する仕様ではないので、7つのアクション以外を定義してできないか考えてみましたが、よく分かりませんでした。

補足情報(FW/ツールのバージョンなど)

Rails 5.2.4.3
ruby 2.5.1

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

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

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

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

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

guest

回答3

0

自己解決

pay.jpのAPIを用いた実装をすることにしました。

投稿2020/07/17 13:14

satoshi_n61

総合スコア10

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

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

0

テキストルーティングとコントローラーの設計をどうすべきかご教授ください。
発生している問題・エラーメッセージ
createアクションを使ってその中にフラッシュメッセージとリダイレクトをさせてみました

知りたい内容が前中後で合っていない気がしますが、どうでしょうか。

とりあえず、Routing Errorについて、ソースを見た限りで気になったところを申し上げると、
このエラーはshow.html.hamlを開いたときに発生しているのではないかと思っていて、
おそらくこの部分が、

haml

1 = link_to product_order_index_path do

下記のような形になるのではないかと思います。

haml

1 = link_to product_orders_path(productのインスタンス) do

厳密には rails routes などで確認してみてください。

フラッシュについては、
他の部分で表示されているのであれば、正常に動作すれば表示されるのではないかと思います。

投稿2020/06/22 09:13

Cojiro

総合スコア539

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

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

0

notice出す場所を作っていないだけではないでしょうか。

.notifications - flash.each do |key, value| = content_tag(:div, value, class: key)

みたいなものはどこかにありますか?

参考:【Rails】flashメッセージを使用して簡易メッセージを表示させる詳しい方法と解説

投稿2020/06/19 08:34

perpouh

総合スコア299

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

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

satoshi_n61

2020/06/22 06:56

application.html.hamlにあります。(部分テンプレートにしてrenderで呼び出しています。)
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問