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

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

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

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

Q&A

解決済

1回答

635閲覧

トップページからログインしているマイページに飛びたい。

NEMOTOSHOTA

総合スコア32

Ruby on Rails 6

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

0グッド

0クリップ

投稿2020/06/04 00:41

現在、トップページからマイページに移動したいのですがエラーが表示されてしまいます。

トップページからマイページ(userコントローラのshowアクションです)というリンクをクリックすると画像イメージ説明

のようなエラーが表示されてしまいます。

(問題を切り分けて、まずはトップページからマイページに移動できないエラーを解決しようと思っています。)

Relation周りのエラーということですが、リレーションの部分に関してはどこが間違っているか分かりませんでした。

現在、公式のrailsチュートリアルなどでMVCモデルの部分を確認しているところです。

アドバイスをいただきたいです。

【対象ファイル】
static_pages_controller.rb

# frozen_string_literal: true class StaticPagesController < ApplicationController def home @user = User.all @title = 'ジムの口コミ' @description = 'ジムの口コミを調べることができるサイトです' @keywords = 'ジム' 'パーソナルトレーニング' '筋トレ' end def help @title = '問い合わせ' end def about; end end

_header.html.erb

<nav class="navbar navbar-default navbar-fixed-top"> <div class="container"> <div class="navbar-header"> </div> <div id="navbar" class="collapse navbar-collapse navbar-right"> <ul class="nav navbar-nav"> <li class="active"><%= link_to "ホーム", root_path %></li> <li class="active"><%= link_to "コラム", blogs_path %></li> <li class="active"><%= link_to "口コミ", gyms_path %></li> <% if logged_in? %> <li class="active"><%= link_to "マイページ", user_path(@user) %></li> <% if current_user.try(:admin?) %> <li class="active"><%= link_to "管理画面", "/admin" %></li> <% end %> <li class="active"><%= link_to "設定", edit_user_path(current_user) %></li> <li class="active"><%= link_to "ログアウト", logout_path, method: :delete, data: { confirm: "ログアウトしますか?" } %></li> <% else %> <li class="active"><%= link_to "ログイン", login_path %></li> <% end %> </ul> </nav>

users_controller.rb

# frozen_string_literal: true class UsersController < ApplicationController before_action :logged_in_user, only: %i[index edit update destroy] before_action :correct_user, only: %i[edit update] before_action :admin_user, only: :destroy def index @user = User.all @users = User.paginate(page: params[:page]) end def show @user = User.all @user = User.find(params[:id]) end def new @user = User.new end def create @user = User.new(user_params) if @user.save log_in @user flash[:success] = 'ログイン成功です' redirect_to root_url else flash.now[:danger] = '正しく入力してください' render 'new' end end def edit @user = User.find(params[:id]) end def update @user = User.find(params[:id]) if @user.update(user_params) flash[:success] = '情報を更新しました' redirect_to root_url else render 'edit' end end def destroy User.find(params[:id]).destroy flash[:success] = 'User deleted' redirect_to users_url end private def user_params params.require(:user).permit(:name, :email, :password, :password_confirmation) end # beforeアクション # 正しいユーザーかどうか確認 def correct_user @user = User.find(params[:id]) redirect_to(root_url) unless current_user?(@user) end # 管理者かどうか確認 def admin_user redirect_to(root_url) unless current_user.admin? end end

show.html.erb

<% provide(:title, @user.name) %> <div class="row"> <aside class="col-md-4"> <section class="user_info"> </section> </aside> </div>

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

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

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

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

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

guest

回答1

0

ベストアンサー

変数の中身を確認してください。
変数の中身が想像できるような変数名にしてください。
エラーメッセージをきちんと翻訳するなりして正しい意味で読んでください。

erb

1<%= link_to "マイページ", user_path(current_user) %>

投稿2020/06/04 00:56

編集2020/06/04 00:56
Mugheart

総合スコア2349

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問