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

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

ただいまの
回答率

88.63%

bootstrap.offcanvas.jsを使ったとき、ユーザのログアウトができない

解決済

回答 1

投稿 編集

  • 評価
  • クリップ 1
  • VIEW 866

YutaTanikawa

score 7

bootstrap.offcanvas.jsを使い、ハンバーガーメニューと左からスッと出てくるオフキャンバスメニューを作りました。
ハンバーガーメニューからオフキャンバスメニューを出したとき、deleteメソッドを用いたログアウトリンクをクリックしても、オフキャンバスメニューが閉じるだけでログアウトされません(ほかの通常のリンクは正常に動作します)。
横幅が大きいデバイスで表示したときには、ログアウトのリンクがheaderの部分に既に表示されており(ハンバーガーメニューではなくすでに表示されており)、それは問題なく反応します。
初学者のため、表現がわかりにくいかもしれませんが、ご教示いただければと思います。

環境:
Rails 5.1.6.1
Ruby 2.5.0
turbolinks 5.2.0
devise 4.5.0
bootstrap-sass 3.3.7
jquery-rails 4.3.3

bootstrap.offcanvas.jsとbootstrap.offcanvas.cssはgithubから最新版をダウンロードし、vendor/assets/javascriptsおよびvendor/assets/stylesheets以下に配置済み。

app/views/layout/application.html.erb
<!DOCTYPE html>
<html>
  <head>
    <title>PayjpEcsite</title>
    <%= csrf_meta_tags %>
    <meta name="viewport" content="width=device-width, initial-scale=1.0">

    <%= stylesheet_link_tag    'application', media: 'all', 'data-turbolinks-track': 'reload' %>
    <%= javascript_include_tag 'application', 'data-turbolinks-track': 'reload' %>
  </head>

  <body>
    <header>
      <div data-turbolinks="false">
        <button type="button" class="navbar-toggle offcanvas-toggle" data-toggle="offcanvas" data-target="#js-bootstrap-offcanvas">
          <span class="sr-only">Toggle navigation</span>
          <span class="icon-bar"></span>
          <span class="icon-bar"></span>
          <span class="icon-bar"></span>
        </button>
        <nav class="navbar navbar-default navbar-offcanvas navbar-offcanvas-touch" role="navigation" id="js-bootstrap-offcanvas">
          <div class="container-fluid">
            <!-- Brand and toggle get grouped for better mobile display -->
            <div class="navbar-header">
              <a class="navbar-brand" href="#">Brand</a>
            </div>

            <!-- Collect the nav links, forms, and other content for toggling -->
            <ul class="nav navbar-nav">
                <% if user_signed_in? %>
                  <% if current_user.admin? %>
                    <li><%= link_to current_user.last_name + " " + current_user.first_name + "(Admin)", user_path(current_user) %></li>
                    <li><%=link_to "商品新規登録", new_product_path %></li>
                  <% else %>
                    <li><%= link_to current_user.last_name + " " + current_user.first_name + " 様の購入履歴", user_path(current_user) %></li>
                  <% end %>
                  <li><%= link_to '登録情報変更', edit_user_registration_path %></li>
                  <li><%= link_to 'ログアウト', destroy_user_session_path, method: :delete %></li>
                <% else %>
                  <li><%= link_to 'サインアップ', new_user_registration_path %></li>
                  <li><%= link_to 'ログイン', new_user_session_path %></li>
                <% end %>
            </ul>

          </div><!-- /.container-fluid -->
        </nav>
      </div>
    </header>

    <div class="container-fluid">
      <p class="notice"><%= notice %></p>
      <p class="alert"><%= alert %></p>
      <%= yield %>
    </div>
  </body>
</html>
app/assets/javascripts/application.js
//= require rails-ujs
//= require turbolinks
//= require jquery
//= require jquery.jpostal
//= require bootstrap-sprockets
//= require bootstrap.offcanvas
//= require_tree .
app/assets/stlesheets/application.js
*= require_tree .
*= require_self
*/
@import "bootstrap-sprockets";
@import "bootstrap";
@import "bootstrap.offcanvas";

header {
  height: 11px;;
}

.form-control-label {
  display: block;
}

.invalid-feedback {
  color: red;
}

他に必要な項目があれば、教えていただければ追記します。
よろしくおねがいたします。

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 1

check解決した方法

0

理由はわかりませんが、もう一度1からRails newして作り直したら改善しました。。。
また何か困ったときはよろしくお願いします。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

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

  • ただいまの回答率 88.63%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る