2015-08-30 8 views
1

Я пытался настроить аутентификацию пользователя в своем приложении с помощью Authlogic, и я уверен, что проблема в моем коде, но я не могу найти его. Когда я нажимаю ссылку/login, все работает так, как ожидалось, но мой/logout хочет использовать GET вместо DELETE.Не удается выполнить маршрутизацию с помощью Authlogic

routing.db

Rails.application.routes.draw do 

    root 'comments#index' 

    resources :roles 
    resources :subjects 
    resources :comments 
    resources :topics 
    resources :users 
    resources :user_sessions, only: [:create, :destroy] 

    delete '/logout', to: 'user_sessions#destroy', as: :logout 
    get '/login', to: 'user_sessions#new', as: :login 
end 

user_sessions_controller

class UserSessionsController < ApplicationController 

    before_filter :require_no_user, :only => [:new, :create] 
    before_filter :require_user, :only => :destroy 

    def new 
    @user_session = UserSession.new 
    end 

    def create 
    @user_session = UserSession.new(user_session_params) 
    if @user_session.save 
     flash[:success] = "Welcome back!" 
     redirect_to root_path 
    else 
     render :action => :new 
    end 
    end 

    def destroy 
    current_user_session.destroy 
    flash[:success] = "Goodbye!" 
    redirect_to root_path 
    end 

    private 

    def user_session_params 
    params.require(:user_session).permit(:username, :password, :remember_me) 
    end 
end 

application.html.erb

<!DOCTYPE html> 
<html> 
    <head> 
    <title><%= content_for?(:title) ? yield(:title) : "Untitled" %></title> 
    <%= stylesheet_link_tag "application" %> 
    <%= javascript_include_tag :defaults %> 
    <%= csrf_meta_tag %> 
    <%= yield(:head) %> 
    </head> 
    <body> 
    <div id="user_nav"> 
     <% if current_user %> 
      <span><%= current_user.username %></span> 
      <%= link_to "Edit profile", edit_user_path(:current) %> 
      <%= link_to 'Sign Out', logout_path, :method => :delete %> 
     <% else %> 
      <%= link_to "Register", new_user_path %> 
      <%= link_to 'Sign In', login_path %> 
     <% end %> 
    </div> 
    <div id="container"> 
     <% flash.each do |name, msg| %> 
     <%= content_tag :div, msg, :id => "flash_#{name}" %> 
     <% end %> 
     <%= content_tag :h1, yield(:title) if show_title? %> 
     <%= yield %> 
    </div> 
    </body> 
</html> 

ли выглядеть неправильно что-то здесь? Вот ошибка я получаю:

Start of error page

Relevant routes on error page

ответ

1

В вашем application.html.erb файле:

Изменение:

<%= javascript_include_tag :defaults %> 

To:

<%= javascript_include_tag "application" %> 

Он должен работать после этого!

+0

Большое вам спасибо! Я по крайней мере на следующей ошибке. ;-) – Bret

 Смежные вопросы

  • Нет связанных вопросов^_^