我按照本教程将自定义字段添加到我的Devise用户模型中,并且在大多数情况下一切似乎都正常.但是,当我尝试退出我的应用程序时,有时会收到错误,如下所示:
Devise中的NameError :: SessionsController #New
未初始化的常量User :: ParameterSanitizer
提取的来源(第11行):
9 def devise_parameter_sanitizer
10 if resource_class == User
11 User::ParameterSanitizer.new(User, :user, params)
12 else
13 super
14 end
Run Code Online (Sandbox Code Playgroud)
正如我所提到的,我的应用程序通常正常.有时我可以在不收到此错误的情况下注销.它简直让我感到困惑!
编辑:重新启动rails服务器导致错误消息消失,但是,我正在寻找一个更永久的解决方案.
编辑:完整堆栈跟踪:
app/controllers/application_controller.rb:11:in 'devise_parameter_sanitizer'
devise (3.2.2) app/controllers/devise/sessions_controller.rb:40:in 'sign_in_params'
devise (3.2.2) app/controllers/devise/sessions_controller.rb:8:in 'new'
actionpack (4.0.0) lib/action_controller/metal/implicit_render.rb:4:in 'send_action'
actionpack (4.0.0) lib/abstract_controller/base.rb:189:in 'process_action'
actionpack (4.0.0) lib/action_controller/metal/rendering.rb:10:in 'process_action'
actionpack (4.0.0) lib/abstract_controller/callbacks.rb:18:in 'block in process_action'
activesupport (4.0.0) lib/active_support/callbacks.rb:443:in '_run__1105479583300404070__process_action__callbacks'
activesupport (4.0.0) lib/active_support/callbacks.rb:80:in 'run_callbacks'
actionpack (4.0.0) lib/abstract_controller/callbacks.rb:17:in 'process_action'
actionpack (4.0.0) lib/action_controller/metal/rescue.rb:29:in 'process_action'
actionpack (4.0.0) lib/action_controller/metal/instrumentation.rb:31:in 'block …Run Code Online (Sandbox Code Playgroud) class AddRatingToBooks < ActiveRecord::Migration
def up
add_column :books, :rating, :integer
end
def down
remove_column :books, :rating
end
Run Code Online (Sandbox Code Playgroud)
我的 中有以下代码片段db/migrate/,我正在尝试添加ratings到我的books表中,其范围为0-100,但我不确定如何在此处添加它,我能找到的只是查询与范围。我确信这很简单,只是我还没有做到。