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

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

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

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

Ruby on Rails

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

Q&A

解決済

2回答

1145閲覧

ログイン認証機能実装でのナビバー表示

iwashita

総合スコア3

Ruby

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

Ruby on Rails

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

0グッド

0クリップ

投稿2020/06/01 16:42

前提・実現したいこと

タスクリストのアプリケーション作成においてユーザのログイン認証を設置するためにコード書いているときに問題が生じました。

ログイン画面作成時まではナビバーに「Signup」「Login」を表示出来ていたのですが、ログイン画面からログイン後のトップページにアクセスさせるためにコードを記載して、動作確認を行ったところナビバーから「Signup」「Login」の表示がなくなってしまいました。

pathをURLに書いてアクセスするとログインページなどに移動することが出来ます。

エラーコードが表示されるわけではない為、どの部位にミスがありこのようなことが起こっているのかわからない為、こちらでお力を貸していただければと思います。

プログラミングを始めて間もない未熟者でご質問内容に不備があるかもしれませんが、宜しくお願い致します。

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

イメージ説明

該当のソースコード

<header class='mb-4'> <nav class="navbar navbar-expand-sm navbar-dark bg-dark"> <a class="navbar-brand" href="/">Tasklist</a> <button class="navbar-toggler" type="button" data-toggler="collapse" data-target="#navbarSupportedContent"> <span class="navbar-toggler-icon"></span> </button> <div class="collapse navbar-collapse justify-content-end" id="navbarSupportedContent"> <ul class="navbar-nav"> <% if logged_in? %> <li class="nav-item"> <%= link_to 'Users', users_path, class: 'nav-link' %> </li> <li class="nav-item dropdown"> <a href="#" class="nav-link dropdown-toggle" data-toggle="dropdown"> <%= current_user.name %> </a> <ul class="dropdown-menu dropdown-menu-right"> <li class="dropdown-item"> <%= link_to 'My profile', user_path(current_user) %> </li> <li class="dropdown-divider"></li> <li class="dropdown-item">Logout</li> </ul> </li> <li class="nav-item"> <%= link_to 'Signup', signup_path, class: 'nav-link' %> </li> <li class="nav-item"> <%= link_to 'Login', login_path, class: 'nav-link' %> </li> <% end %> </ul> </div> </nav> </header>
module SessionsHelper def current_user @current_user ||= User.find_by(id: session[:user_id]) end def logged_in? !!current_user end end

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

Cloud9環境下でRuby5.2.2を用いています。

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

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

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

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

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

guest

回答2

0

自己解決

<li class="dropdown-item">Logout</li> </ul> </li> <% else %> <li class="nav-item"> <%= link_to 'Signup', signup_path, class:

<% elase %> のコードが抜けていたことが原因でした。

投稿2020/06/02 02:12

iwashita

総合スコア3

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

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

0

navの大部分が<% if logged_in? %> <% end %>  で囲まれています。
この logged_in? が nil 若しくは false になっているのでしょう。
logged_in? のcodeを調べてみてください。

投稿2020/06/01 20:28

winterboum

総合スコア23333

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

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

iwashita

2020/06/02 02:11

ありがとうございます。参考にもう一度コードを見直していたところ間違いに気が付きまして解決できました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問