🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Ruby on Rails

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

Q&A

解決済

1回答

1475閲覧

【rails】画面遷移ができない問題について(エラーは発生しません)

runban

総合スコア152

Ruby on Rails

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

0グッド

0クリップ

投稿2020/12/18 05:03

現在、某プログラミングスクールにてECサイトのアプリケーションを作成しています。
カート一覧ページ(customer_cart_items_path)へ画面遷移したいのですが、遷移先のページがユーザーマイページ(customer_customer_path(current_customer.id))に遷移してしまっている状態です。
遷移するためのコードを確認すると
<%= link_to "カート", customers_cart_items_path %>
となっており、遷移した画面のurlを確認すると
「~/customers/cart_items」
となっているのですが、htmlだけがユーザーマイページのものを読み込んでいる状態です。

どの箇所を修正すれば、cart_itemsのindex.htmlが表示されるようになるのでしょうか。
ご教示のほど、何卒よろしくお願いいたします。
(また何か不明な点がございましたらコメント欄にてお答えさせていただきますので、ご連絡いただけますと幸いです)

↓遷移した際のログです。なぜか「Processing by Customer::CustomersController#show as HTML」と表示されており、CurtItemsコントローラーを呼び出したいのですが、Customersコントローラーが呼び出されてしまっている状態です。

log

1Started GET "/customers/cart_items" for 119.231.101.229 at 2020-12-18 04:43:41 +0000 2Processing by Customer::CustomersController#show as HTML 3 Parameters: {"id"=>"cart_items"} 4 Customer Load (0.1ms) SELECT "customers".* FROM "customers" WHERE "customers"."id" = ? ORDER BY "customers"."id" ASC LIMIT ? [["id", 1], ["LIMIT", 1]] 5 Rendering customer/customers/show.html.erb within layouts/application 6 Rendered customer/customers/show.html.erb within layouts/application (1.0ms) 7 Rendered layouts/_login.html.erb (0.6ms) 8Completed 200 OK in 32ms (Views: 28.1ms | ActiveRecord: 0.1ms)

↓下から15行目からcart_itemsの記述をしています。

routes

1Rails.application.routes.draw do 2 3 4 get 'orders/index' 5 get 'orders/show' 6 get 'order/index' 7 get 'order/show' 8 9 devise_for :administrator, controllers: { 10 sessions: 'administrators/sessions', 11 passwords: 'administrators/passwords', 12 registrations: 'administrators/registrations' 13 } 14 15 16 namespace :administrator do 17 resources :genres, only: [:index, :create, :edit, :update, :show] 18 end 19 20 namespace :administrator do 21 resources :customers 22 end 23 24 devise_for :customers, controllers: { 25 sessions: 'customers/sessions', 26 passwords: 'customers/passwords', 27 registrations: 'customers/registrations' 28 } 29 30 31 namespace :administrator do 32 resources :products, only: [:index, :new, :create, :show, :edit, :update] 33 end 34 scope module: :customer do 35 resources :customers, only: [:show, :edit, :update] 36 end 37 resources :shipping_addresses,only: [:index,:create,:edit,:update,:destroy] 38 resources :products 39 40 get 'about' => 'customer/products#about' 41 root :to => "customer/products#top" 42 get "/homes/top" => "homes#top" 43 get "/administrator/top" => "administrator/products#top", :as => "administrator_customer_top" 44 45 46 47 resources :genres,only: [:index,:create,:edit,:update,:show] 48 get 'administrator' => "homes#administrator", :as => "homes_administrator" 49 get 'administrator' => "administrator#top", :as => "administrator_top" 50 get "/customers/quit" => "customers#quit", as: 'customers_quit' 51 put "/customers/out" => "customers#out", as: 'customers_out' 52 53 scope module: :customer do 54 get 'customers/products' => 'customer/products#index' 55 get 'customers/products/:id' => 'customer/products#show' 56 57 58 resource :customers, only: [:show] do 59 collection do 60 get 'quit' 61 patch 'out' 62 end 63 resources :cart_items,only: [:index,:update,:create,:destroy] do 64 collection do 65 delete '/' => 'cart_items#all_destroy' 66 end 67 end 68 end 69 end 70 71 72 73 resources :customers, only: [:show, :edit, :update] 74 75 namespace :administrator do 76 resources :orders, only: [:index, :show, :update] 77 end 78 79 namespace :customer do 80 resources :customers 81 end 82 83end 84

↓上から9行目がカート一覧ページへ遷移するためのコードです

html

1 <% if customer_signed_in? %> 2 <li> 3 <%= link_to "ログアウト", destroy_customer_session_path, method: :delete %> 4 </li> 5 <li> 6 <%= link_to "マイページ", customer_customer_path(current_customer.id) %> 7 </li> 8 <li> 9 <%= link_to "カート", customers_cart_items_path %> 10 </li> 11<% else %> 12 <li> 13 <%= link_to "新規登録", new_customer_registration_path %> 14 </li> 15 <li> 16 <%= link_to "ログイン", new_customer_session_path %> 17 </li> 18 <li> 19 <%= link_to "トップページ", root_path %> 20 </li> 21<% end %>

↓表示したいcart_itemsのindex.html.erbです

html

1<% provide(:title, "カート") %> 2<h2 class="head-line title_h2 text-center">ショッピングカート</h2> 3<div calss="row"> 4 <div class="col-xs-11" id="no_cart"> 5 6 <% if @cart_items.present? %> 7 <div class="pull-right margin-bottom"> 8 <%= link_to " カートを空にする", customers_cart_items_path, method: :delete, data: {confirm: 'カートを空にして本当によろしいですか?'}, class: "glyphicon glyphicon-trash btn btn-danger" %> 9 </div> 10 <table class="table table-hover table-bordered"> 11 <thead> 12 <tr class="info"> 13 <th>商品名</th> 14 <th>単価(税込)</th> 15 <th>数量</th> 16 <th>小計</th> 17 <th></th> 18 </tr> 19 </thead> 20 21 <tbody> 22 <% @cart_items.each do |cart_item| %> 23 <tr id="cart-<%= cart_item.id %>"> 24 <%= render "quantity_form", cart_item: cart_item %> 25 </tr> 26 <% end %> 27 </tbody> 28 </table> 29 <div class="col-xs-9 margin-bottom"> 30 <div class ="action"> 31 <%= link_to " 買い物を続ける", products_path, class: "glyphicon glyphicon-shopping-cart btn btn-info" %> 32 </div> 33 </div> 34 35 <div class="col-xs-3 pull-right billing"> 36 <table class="table table-bordered text-right"> 37 <thead> 38 <tr> 39 <td class="warning">合計金額</td> 40 <td class="text-right" id='total_price'> 41 ¥<%= total_price(@cart_items).to_s(:delimited) %> 42 </td> 43 </tr> 44 </thead> 45 </table> 46 </div> 47 <div class="col-md-4 col-md-offset-4 text-center"> 48 <%= link_to " 情報入力に進む", new_customers_order_path, data: {"turbolinks" => false}, class: "glyphicon glyphicon-pencil btn btn-success center-block" %> 49 </div> 50 <% else %> 51 <%= render "no_cart" %> 52 <% end %> 53 </div> 54</div>

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

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

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

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

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

guest

回答1

0

自己解決

再度修正して投稿します

投稿2020/12/20 04:29

runban

総合スコア152

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問