Rails4升级Devise扩展控制器

时间:2014-03-17 08:20:24

标签: ruby-on-rails-4 devise

将rails应用程序从3.2.17升级到4.0.4时,我收到此错误

default_controller_and_action': 'Sessions' is not a supported controller name. This can lead to potential routing problems. See http://guides.rubyonrails.org/routing.html#specifying-a-controller-to-use (ArgumentError)

在我的路线档案内容

  devise_for :users, :controllers => { :sessions => "Sessions", :passwords => "Passwords", :registrations => "registrations" } , :path => '', :path_names => {
    :sign_in => 'login', 
    :sign_out => 'logout'
  }

  root :to => "children#index"

SessionsController从设计控制器扩展如下

class SessionsController < Devise::SessionsController
...........................
....................
end

为什么我收到Sessions不支持控制器名称?我试着在路线和控制器中改变它但仍面临同样的问题。

1 个答案:

答案 0 :(得分:1)

解决这个问题。这个问题是由于区分大小写。我们必须使用小写字母而不是大写字母。例如,不是会话而是会话。我在路径文件中使用Sessions,但我已将其更改为会话。上面的代码可以写成

  devise_for :users, :controllers => { :sessions => "sessions", :passwords => "passwords", :registrations => "registrations" } , :path => '', :path_names => {
    :sign_in => 'login', 
    :sign_out => 'logout'
  }