2011-09-27 61 views
1

我跟着维基创建链接,但得到这个错误:就算我是相当新的Rails和设计设计登入登出链接错误

uninitialized constant ApplicationController::UserSession 

提取的源(左右线#1):

1: <% if user_signed_in? %> 
    2: <li> 
    3: <%= link_to('Logout', destroy_user_session_path, :method => :delete) %>   
    4: </li> 

跟踪模板包含的:应用程序/视图/布局/ _header.html.erb,应用程序/视图/布局/ application.html.erb

app/controllers/application_controller.rb:10:in `current_user_session' 
    app/controllers/application_controller.rb:16:in `current_user' 
    app/views/devise/menu/_login_items.html.erb:1:in`_app_views_devise_menu__login_items_html_erb__1251633497065791740_2169375180__3843613137737702562' 
    app/views/layouts/_header.html.erb:13:in `_app_views_layouts__header_html_erb___2695761790912056148_2169430740_3591649723346667383' 
    app/views/layouts/application.html.erb:10:in `_app_views_layouts_application_html_erb__2958864439808398489_2169528520__269406770402330689' 

回答

0

不知道如果这是问题,但你有没有尝试设置:method => :delete:method => :get?我还建议您将link_to设置为button_to,因为您试图“做某事”,而不一定“去某处”。

1

我有同样的问题,因为我是从authlogic迁移,以制订和我忘了删除authlogic具体方法在应用控制器,就像

private 
def current_user_session 
    return @current_user_session if defined?(@current_user_session) 
    @current_user_session = UserSession.find 
end 

def current_user 
    return @current_user if defined?(@current_user) 
    @current_user = current_user_session && current_user_session.record 
end 

def require_user 
    unless current_user 
    store_location 
    flash[:notice] = "You must be logged in to access this page" 
    redirect_to new_user_session_url 
    return false 
    end 
end 

def require_no_user 
    if current_user 
    store_location 
    flash[:notice] = "You must be logged out to access this page" 
    redirect_to account_url 
    return false 
    end 
end 

def store_location 
    session[:return_to] = request.request_uri 
end 

def redirect_back_or_default(default) 
    redirect_to(session[:return_to] || default) 
    session[:return_to] = nil 
end 

我希望这可以帮助你。