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

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

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

Deviseとは、Ruby-on-Railsの認証機能を追加するプラグインです。

Ruby

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

Ruby on Rails

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

Q&A

解決済

1回答

516閲覧

ユーザー情報を更新した後マイページへ飛べない

kkkt

総合スコア1

Devise

Deviseとは、Ruby-on-Railsの認証機能を追加するプラグインです。

Ruby

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

Ruby on Rails

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

0グッド

0クリップ

投稿2020/08/13 04:33

前提・実現したいこと

ユーザーの情報を変更した後に、ユーザー情報を変更した旨のビューを挟んでマイページに飛ばしたいのですがうまくいきません

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

ActionController::UrlGenerationError in Users#update Showing /Users/kimototakashinari/projects/fleamarket_sample_80g/app/views/users/update.html.haml where line #2 raised: No route matches {:action=>"show", :controller=>"users", :id=>nil}, missing required keys: [:id]

該当のソースコード

controller.rb

ruby

1class UsersController < ApplicationController 2 3 def show 4 user = User.find(params[:id]) 5 end 6 7 def edit 8 @user = User.find(user[:id]) 9 end 10 11 def update 12 user = User.find(params[:id]) 13 user.update(user_params) 14 end 15 16 def destroy 17 user = User.find(params[:id]) 18 end 19 20 private 21 def user_params 22 params.require(:user).permit(:email, :password) 23 end 24end 25

routes.rb

ruby

1Rails.application.routes.draw do 2 devise_for :users, controllers: { 3 registrations: 'users/registrations', 4 } 5 devise_scope :user do 6 get 'profiles', to: 'users/registrations#new_profile' 7 post 'profiles', to: 'users/registrations#create_profile' 8 get 'profiles', to: 'users/registrations#edit_profile' 9 end 10 root 'items#index' 11 resources :users, only: [:show, :edit, :update, :destroy] 12end

試したこと

ルートはちゃんとあるんだと思いますが、idが見つからないということでidを見つけてくる様な記述をしましたが変わらずです。
非常に申し訳ないのですが教えていただければ幸いです

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

rails 6_0_3
ここにより詳細な情報を記載してください。

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

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

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

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

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

guest

回答1

0

ベストアンサー

/app/views/users/update.html.hamlの追記をお願いいたします。
おそらく~~~path(インスタンス)とすればidを付与できます。

投稿2020/08/13 10:37

nasuk47

総合スコア311

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

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

kkkt

2020/08/13 14:02

回答ありがとうございます。 /app/views/users/update.html.hamlの二行目のリンクに user_path(@user)で解決いたしました!
nasuk47

2020/08/13 21:55

よかったです。引き続く学習頑張ってください
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問