【问题标题】:Restful Authentication Action Controller: Exception caught problemRestful Authentication Action Controller:异常捕获问题
【发布时间】:2009-11-14 11:21:21
【问题描述】:

当登录失败时,它会重定向到会话路径,我得到那个异常捕获错误,它说

未知操作 未响应任何操作 节目。操作:拒绝访问, 检查角色,创建,销毁,新建, 渲染可选错误文件, 角色要求,以及 角色要求=

sessions_controller

def new
      end

      def create
        logout_keeping_session!
        user = User.authenticate(params[:login], params[:password])
        if user
          # Protects against session fixation attacks, causes request forgery
          # protection if user resubmits an earlier form using back
          # button. Uncomment if you understand the tradeoffs.
          # reset_session
          self.current_user = user
          new_cookie_flag = (params[:remember_me] == "1")
          handle_remember_cookie! new_cookie_flag
          redirect_back_or_default('/')
          flash[:notice] = "Logged in successfully"
        else
          note_failed_signin
          @login       = params[:login]
          @remember_me = params[:remember_me]
          render :action => 'new'
        end
      end
protected
  # Track failed login attempts
  def note_failed_signin
    flash[:error] = "Couldn't log you in as '#{params[:login]}'"
    logger.warn "Failed login for '#{params[:login]}' from #{request.remote_ip} at #{Time.now.utc}"
  end
end

路线

  map.logout '/logout', :controller => 'sessions', :action => 'destroy'
  map.login '/login', :controller => 'sessions', :action => 'new'
  map.register '/register', :controller => 'users', :action => 'create'
  map.signup '/signup', :controller => 'users', :action => 'new'
  map.resources :users

  map.resource :session

【问题讨论】:

    标签: ruby-on-rails


    【解决方案1】:

    您是否尝试过使用redirect_to 而不是渲染?

    进一步检查后,这可能与您的map.resource 通话有关。当使用单数 map.resource(而不是复数)时,不会为 index 创建默认路由。

    您可能需要rake:routes 以查看您的可用路线,并查看map.resource here 的信息。

    【讨论】:

    • redirect_to ('/login') 有效,但渲染有什么问题?我不想玩原始代码。谢谢
    • 我创建了 show.html.erb,现在看起来还不错。这是我的问题还是创建必要文件的插件?
    • 不,这是你的错。您需要定义要渲染的视图。 Rails 将在控制器中查找您请求的操作(显示),如果它没有找到该操作,它将假定您有一个视图(show.html.erb),如果失败,它会抱怨它可以'在你的控制器中找不到'显示'。
    猜你喜欢
    • 2011-03-16
    • 2022-12-06
    • 2013-03-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-19
    • 2012-12-07
    • 1970-01-01
    相关资源
    最近更新 更多