0

在启动服务器或 rake 路由时,我的 rails 4.0.0 应用程序与 devise 3.1.1 出现了一个奇怪的错误

Rails::Application::RoutesReloader#execute_if_updated delegated to updater.execute_if_updated, but updater is nil: 
# <Rails::Application::RoutesReloader:0x000000044f5e80 
@paths=["/opt/web/devise/config/routes.rb"], 
@route_sets=[#<ActionDispatch::Routing::RouteSet:0x000000045ce190>]>

我的路线.rb

devise_for :users, :path => "/", :path_names => { 
  :sign_in => "signin", 
  :sign_out => "signout", 
  :sign_up => "signup"
}

我的 application_controler.rb

before_filter :configure_strong_parameters, if: :devise_controller?
...
protected
  def configure_strong_parameters
    devise_parameter_sanitizer.for(:sign_up) << :gender, :name, :lastname, :birthday, :country
  end

我的 users_controler.rb

private

  def user_params
    params.require(:user).permit(:pseudo, :email, :gender, :name, :lastname, :birthday, :password, :password_confirmation, :country)
  end

我的用户.rb

devise :database_authenticatable, :registerable, :recoverable, :rememberable, :trackable, :validatable

我尝试删除 gem,删除 devise.rb 初始化程序并重新安装它,没有任何更改。

4

1 回答 1

1

尝试这个:

我今天遇到了这个问题。Rails 4.0.0 和设计 3.10。

当我添加到模型中的 User.rb 时,问题就开始了。显然,您可以将设计生成的东西单独留在顶部,并将您想要的任何更改放在下面,否则您将收到此错误。

如果这不起作用,请尝试使用rails g devise User再次重新生成 user.rb,然后将默认内容单独留在顶部,然后在其下方放置您想要的任何新代码。

顺便说一句,默认应该是这样的:

class User < ActiveRecord::Base
  # Include default devise modules. Others available are:
  # :confirmable, :lockable, :timeoutable and :omniauthable
  devise :database_authenticatable, :registerable,
         :recoverable, :rememberable, :trackable, :validatable

***Put your code here***
end
于 2013-10-31T16:12:37.080 回答