2017-11-04 10 views
0

私のRailsアプリケーションからログアウトすると上記のエラーが発生します。私はDeviseを使うときに他の人が同じエラーを抱えているのを見るが、私はその宝石を使っていない。ここに私のSessionsController.rbがあります。ActionController :: InvalidAuthenticityToken in SessionsController#destroy

class SessionsController < ApplicationController 

    def new 

    end 

    def create 
    chef = Chef.find_by(email: params[:session][:email].downcase) 
    if chef && chef.authenticate(params[:session][:password]) 
     session[:chef_id] = chef.id 
     cookies.signed[:chef_id] = chef.id 
     flash[:success] = "You have successfully logged in." 
     redirect_to chef 
    else 
     flash.now[:danger] = "There was something wrong with your login information." 
     render 'new' 
    end 
    end 

    def destroy 
    session[:chef_id] = nil 
    flash[:success] = "You have logged out." 
    redirect_to root_path 
    end 

end 

何か助けてくれてありがとう。

ここに私のナビゲーションバーの一部であり、私のログアウトボタン、されています

<li><%= link_to "Log out", logout_path, method: :delete %></li> 
     </ul> 
     </li> 
     <% else %> 
     <li><%= link_to "Log in", login_path %></li> 
     <% end %> 

ここでは、ログアウトボタンで部分的に私_navigationの大部分である:

<% if logged_in? %><%#Changes drop-down menu options if logged in.%> 
>   <li class="dropdown"> 
>    <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false"><%= 
> current_chef.chefname.titleize %>'s Profile <%= "Admin" if 
> current_chef.admin? %><span class="caret"></span></a> 
>    <ul class="dropdown-menu"> 
>    <li><%= link_to "View your profile", chef_path(current_chef) %></li> 
>    <li><%= link_to "Edit your profile", edit_chef_path(current_chef) %></li> 
>    <li><a href="#">Something else here</a></li> 
>    <li role="separator" class="divider"></li> 
>    <li><%= link_to "Log out", logout_path, method: :delete%></li> 
>    </ul> 
>   </li> 
>   <% else %> 
>    <li><%= link_to "Log in", login_path %></li> 
>   <% end %> 
+0

「ログアウト」ボタンを含むビューピースを提供できますか? – AntonTkachov

+0

@AntonTkachovご返信ありがとうございます。私は上記の私のログアウトボタンのコードを付けました。 –

+0

レイアウトを貼り付けることはできますか? – AntonTkachov

答えて

1

あなたにはcsrf_meta_tagの声明がありません(jquery_ujs/jquery-railsが正しく動作することを覚えておいてください)。それを追加して、それが動作するかどうかを確認してください。

0

ActionController::InvalidAuthenticityTokenエラーはDevise gemとは関係ありません。protect_from_forgeryの場合はAPI docにチェックしてください。アプリケーションコントローラの内部を調べます。

+0

あなたの返事をありがとう。私はそれを見ます。私はあなたの答えを投票しようとしましたが、私はそれを登録するための十分なrepポイントがありません。奇妙な政策。 –

関連する問題