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

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

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

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

Ruby on Rails

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

Q&A

解決済

1回答

710閲覧

マイページの実装でidを渡せない

keisuke.F

総合スコア19

Ruby

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

Ruby on Rails

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

0グッド

0クリップ

投稿2020/08/21 14:02

編集2020/08/21 14:03

お世話になっております。
現在、フリマアプリを開発しております。

マイページの実装で以下のエラーが出ています。

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

新規登録機能はウィザード形式で実装しました。
初歩的なことだと思うのですが、ハマってしまっています。

おそらくネストさせるべきなのだと思うのですが、それらしい箇所に記述をしてもエラーは変わらなかったり、syntaxerrorが出ました。

コードは下記の通りです。

routes.rb

Rails.application.routes.draw do devise_for :users, controllers: { registrations: 'users/registrations' } devise_scope :user do get 'users/new_address', to: 'users/registrations#new_address' post 'users/create_address', to: 'users/registrations#create_address' end resources :users, only: [:show] root 'items#index' resources :categories, only: [:index, :show] resources :creditcards, only: [:index, :new, :create, :show, :destroy] do member do post 'pay' end end end

users_controller.rb

class UsersController < ApplicationController def show @user = User.find(params[:id]) end end

show.html.hamlは作成してあります。

ルーティングエラーで悩むとはなんとも情けないですが、ご教授願います。

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

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

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

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

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

maisumakun

2020/08/21 14:06

このマイページへアクセスするためのリンクは、どこへどのように書きましたか?
keisuke.F

2020/08/21 14:10 編集

.headerLower .headerLower__left =link_to "#" do カテゴリー =link_to "#" do ブランド - if user_signed_in? .headerLower__right =link_to "user_path" do マイページ =link_to destroy_user_session_path, method: :delete do ログアウト - else .headerLower__right =link_to new_user_session_path do ログイン =link_to new_user_registration_path do 新規会員登録 このように記述しました。
guest

回答1

0

ベストアンサー

link_to"user_path"と文字列を渡すと、そのとおりのURLをアクセスするものとして処理されます。結果、/user_pathへのアクセスが行われ、ルーティングエラーとなります。

user_pathと、引用符なしで書いてください。なお、showを呼ぶにはIDが必要ですので、user_path(current_user)のようにインスタンスを指定する必要があるかもしれません。

投稿2020/08/21 14:13

maisumakun

総合スコア146018

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

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

keisuke.F

2020/08/21 14:17

linkタグの引用符をとってuser_path(current_user)と記述したところ成功しました。 ありがとうございました!!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問