2016-06-15 76 views
0

在我的红宝石2.3.1,我得到这个错误:未定义的方法`rescue_responses'的ActionDispatch :: ShowExceptions:类(NoMethodError)

=> Booting WEBrick 
=> Rails 4.2.6 application starting in development on http://localhost:3000 
=> Run `rails server -h` for more startup options 
=> Ctrl-C to shutdown server 
Exiting 
/root/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/will_paginate-3.0.pre2/lib/will_paginate/railtie.rb:15:in `block in <class:Railtie>': uninitialized constant WillPaginate::Railtie::Forbidden (NameError) 
     from /root/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/railties-4.2.6/lib/rails/initializable.rb:30:in `instance_exec' 
     from /root/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/railties-4.2.6/lib/rails/initializable.rb:30:in `run' 
     from /root/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/railties-4.2.6/lib/rails/initializable.rb:55:in `block in run_initializers' 
     from /root/.rbenv/versions/2.3.1/lib/ruby/2.3.0/tsort.rb:228:in `block in tsort_each' 
     from /root/.rbenv/versions/2.3.1/lib/ruby/2.3.0/tsort.rb:350:in `block (2 levels) in each_strongly_connected_component' 
     from /root/.rbenv/versions/2.3.1/lib/ruby/2.3.0/tsort.rb:431:in `each_strongly_connected_component_from' 
     from /root/.rbenv/versions/2.3.1/lib/ruby/2.3.0/tsort.rb:349:in `block in each_strongly_connected_component' 
     from /root/.rbenv/versions/2.3.1/lib/ruby/2.3.0/tsort.rb:347:in `each' 
     from /root/.rbenv/versions/2.3.1/lib/ruby/2.3.0/tsort.rb:347:in `call' 
     from /root/.rbenv/versions/2.3.1/lib/ruby/2.3.0/tsort.rb:347:in `each_strongly_connected_component' 
     from /root/.rbenv/versions/2.3.1/lib/ruby/2.3.0/tsort.rb:226:in `tsort_each' 
     from /root/.rbenv/versions/2.3.1/lib/ruby/2.3.0/tsort.rb:205:in `tsort_each' 
     from /root/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/railties-4.2.6/lib/rails/initializable.rb:54:in `run_initializers' 
     from /root/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/railties-4.2.6/lib/rails/application.rb:352:in `initialize!' 
     from /home/bistipweb/config/environment.rb:5:in `<top (required)>' 
     from /root/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/polyglot-0.3.1/lib/polyglot.rb:64:in `require' 
     from /root/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/polyglot-0.3.1/lib/polyglot.rb:64:in `require' 
     from /home/bistipweb/config.ru:3:in `block in <main>' 
     from /root/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/rack-1.6.0/lib/rack/builder.rb:55:in `instance_eval' 
     from /root/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/rack-1.6.0/lib/rack/builder.rb:55:in `initialize' 
     from /home/bistipweb/config.ru:in `new' 
     from /home/bistipweb/config.ru:in `<main>' 
     from /root/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/rack-1.6.0/lib/rack/builder.rb:49:in `eval' 
     from /root/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/rack-1.6.0/lib/rack/builder.rb:49:in `new_from_string' 
     from /root/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/rack-1.6.0/lib/rack/builder.rb:40:in `parse_file' 
     from /root/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/rack-1.6.0/lib/rack/server.rb:299:in `build_app_and_options_from_config' 
     from /root/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/rack-1.6.0/lib/rack/server.rb:208:in `app' 
     from /root/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/railties-4.2.6/lib/rails/commands/server.rb:61:in `app' 
     from /root/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/rack-1.6.0/lib/rack/server.rb:336:in `wrapped_app' 
     from /root/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/railties-4.2.6/lib/rails/commands/server.rb:139:in `log_to_stdout' 
     from /root/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/railties-4.2.6/lib/rails/commands/server.rb:78:in `start' 
     from /root/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/railties-4.2.6/lib/rails/commands/commands_tasks.rb:80:in `block in server' 
     from /root/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/railties-4.2.6/lib/rails/commands/commands_tasks.rb:75:in `tap' 
     from /root/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/railties-4.2.6/lib/rails/commands/commands_tasks.rb:75:in `server' 
     from /root/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/railties-4.2.6/lib/rails/commands/commands_tasks.rb:39:in `run_command!' 
     from /root/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/railties-4.2.6/lib/rails/commands.rb:17:in `<top (required)>' 
     from bin/rails:4:in `require' 
     from bin/rails:4:in `<main>' 

railtie.rb是:

require 'will_paginate' 
require 'will_paginate/collection' 

module WillPaginate 
     class Railtie < Rails::Railtie 
       initializer "will_paginate.active_record" do |app| 
         if defined? ::ActiveRecord 
           require 'will_paginate/finders/active_record' 
           WillPaginate::Finders::ActiveRecord.enable! 
         end 
       end 

       initializer "will_paginate.action_dispatch" do |app| 
         if defined?(ActionController::Base) 
           config.action_dispatch.rescue_responses.update('ActionController::Forbidden'=>Forbidden) 
         end 
       end 

       initializer "will_paginate.action_view" do |app| 
         require 'will_paginate/view_helpers/action_view' 
         ActionView::Base.send(:include, WillPaginate::ViewHelpers::ActionView) 
       end 
     end 
end 

哪有我修复它?

+0

'ActionDispatch :: ShowExeptions'应该是'ActionDispatch :: ShowExceptions'(你缺少一个'c') –

+0

请检查我编辑的问题 –

+0

此API已被弃用,因为rails 3.x:http:// grokbase .com/t/gg/activescaffold/132j​​43c9gq/actiondispatch -exceptions-rails-upgrade-2-3-x-to-3-2-x –

回答

0

尝试:

initializer "will_paginate.action_dispatch" do |app| 
    if defined?(ActionController::Base) 
    config.action_dispatch.rescue_responses.update('ActionController::Forbidden'=>Forbidden) 
    end 
end 
+0

试过....有这样的错误是一样的:'未初始化的常量WillPaginate :: Railtie :: Forbidden(NameError) ' –

+0

我不熟悉该功能,但它似乎是读了一个非常古老的文档实施,我建议您阅读如何在最近的文档中做到这一点... –

+0

您能否提供我链接到最新文档? –

1

您不必加任何初始化代码挂钩will_paginate Rails的项目,如果您使用的是最新版本的will_paginate

我看你使用3.0.pre2版本,更新为3.0.7在你的Gemfile,bundle update will_paginate并删除所有你在railtie.rb添加的代码,我想一切都会好起来。

+0

这听起来更明智,你可以给我原始的'railtie.rb'文件吗?在修改'railtie.rb'之前我没有进行备份。我的坏:( –

+0

只需在您的railtie.rb中移除模块WillPaginate的代码,我想在移除该文件后,如果您没有任何其他添加的代码,该文件将为空,如果是这样,只需删除文件 –

+0

所以你想要我删除'railtie.rb'中的整个代码? –

-2

我没有找到任何理由给你添加railtie.rb文件。我相信只要添加宝石并在你的视图中使用它应该有效。

+0

是啊...但'will_paginate'版本也很重要。使用rails 4.2.6并需要添加适当版本的'will_paginate'。因此,从Larry Lv建议从'3.0.pre2'更新到'3.0.7'可能会工作 –

+0

是的,我知道...我没有说版本的宝石没关系......我只是说rb文件不需要... – SnehaT

相关问题