【问题标题】:Rails 3.0.9 + Ruby 1.9.2 p180 + Devise - RoutesRails 3.0.9 + Ruby 1.9.2 p180 + 设计 - 路线
【发布时间】:2011-09-17 15:12:09
【问题描述】:

我正在使用 Rails 3.0.9 + Ruby 1.9.2 p180 + Devise,这是我的路线:

[...]
devise_for :users,:controllers => { :sessions => "users/sessions" }
[...]
root :to => "users/sessions#new"

我基本上想将设计登录页面设置为我的根路由...但是当我尝试使用我的本地服务器 (http://localhost:3000) 时,我收到以下错误:

Unknown action

Could not find devise mapping for path "/". Maybe you forgot to wrap your route inside
the scope block? For example: devise_scope :user do match "/some/route" => 
"some_devise_controller" end

【问题讨论】:

    标签: ruby-on-rails devise


    【解决方案1】:

    试试这个:

    devise_scope :user do 
      root :to => "users/sessions#new"
    end
    

    编辑: 如果您使用的是 devise 的默认控制器,那么您可以这样做:

    devise_scope :user do 
      root :to => "devise/sessions#new"
    end
    

    【讨论】:

    • 在这种情况下users/ 是多余的吗?
    • 取决于您如何对控制器进行子类化。如果您有class SessionsController < Devise::SessionsController,那么您只需使用sessions#new
    • 我稍后会测试上述内容,但这是我所做的(而且它似乎有效):devise_for :users ,:controllers => { :sessions => 'users/sessions' } doroot :to => "users/sessions#new" end ... devise_for 和 devise_scope 的事情可能会很混乱。
    • 这种情况下(devise_for 和 devise_scope 之间)有什么区别...?
    • 功能相同,见configuring routes
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多