1

我正在使用 Authlogic gem 作为 rails 应用程序的身份验证系统。这是我在 UserSessionsController 中的代码

class UserSessionsController < ApplicationController

  layout 'auth_layout'

  def new
    @user_session = UserSession.new
  end

  def create
    @user_session = UserSession.new(params[:user_session])
    if @user_session.save
      flash[:notice] = "Login successful!"
    else
      render :action => :new
    end
 end

 def destroy
   current_user_session.destroy
   redirect_to new_user_session_url
 end
end

虽然每次我在地址栏输入 /user_sessions/destroy 时,都会收到以下错误:

Unknown action

The action 'show' could not be found for UserSessionsController

有谁知道如何解决这个问题?谢谢 :)

4

1 回答 1

1

将以下内容添加到您的config/routes.rb

match "user_sessions/destroy" => "user_sessions#destroy", via: [:get]

假设您将user_session路由定义为 a resourceconfig/routes.rbdestroy操作的路由需要 HTTP 方法 be DELETEto /user_sessions,通过浏览器的地址栏向(不存在的)GET路由发出请求失败。 /user_sessions/destroy

上述路由的添加映射了/user_sessions/destroy您尝试访问的路径以加载UserSessions控制器的destroy方法而不是(不存在的) 方法,并作为参数show传递。"destroy":id

于 2012-07-11T17:20:52.373 回答