1

我刚刚在 Ubuntu Hardy 8.04 VPS 上安装了 Ruby Enterprise Edition 和 Passenger。据我所知,安装成功。我的 Rails 应用程序是可访问的,并且总体上运行良好。但是,我的应用程序中用户可以使用 AJAX 发表评论的部分不起作用。根据Railscasts 第 65 集,我的Comment模型有一个请求的 setter 方法:

def request=(request) 
  logger.info '*** Entered request setter method ***' # <- Never output!
  self.ip_address = request.remote_ip
  self.user_agent = request.env['HTTP_USER_AGENT']
  self.referrer   = request.env['HTTP_REFERER']
end

在开发中一切正常,但在生产中永远不会调用此方法,并且在尝试发表评论时出现 HTTP 500 错误。我的生产日志如下所示。

我对如何调试这个有点不知所措,所以不胜感激任何指针!我不知道是什么试图用一种方法对Fixnum班级进行猴子修补。each

编辑:事实证明,Hoptoad 异常通知程序存在一个已知问题,可以解释该Fixnum问题。它仍然没有解释为什么我的请求设置器没有被 REE 调用!


生产日志

8 月 8 日 17:06:14 railsapp rails[4666]: "\nNoMethodError (未定义方法each' for 1:Fixnum):\n passenger (2.2.4) lib/phusion_passenger/rack/request_handler.rb:91:inprocess_request'\n 乘客 (2.2.4) lib/phusion_passenger/abstract_request_handler.rb:206:in main_loop'\n passenger (2.2.4) lib/phusion_passenger/railz/application_spawner.rb:376:instart_request_handler'\n 乘客 (2.2.4) lib/phusion_passenger/railz/application_spawner.rb:334:in handle_spawn_application'\n passenger (2.2.4) lib/phusion_passenger/utils.rb:182:insafe_fork'\n 乘客 (2.2.4) lib/phusion_passenger/railz/application_spawner.rb:332:in handle_spawn_application'\n passenger (2.2.4) lib/phusion_passenger/abstract_server.rb:351:insend '\n 乘客 (2.2.4) lib/phusion_passenger/ abstract_server.rb:351:in main_loop'\n passenger (2.2.4) lib/phusion_passenger/abstract_server.rb:195:instart_synchronously'\n 乘客 (2.2.4) lib/phusion_passenger/abstract_server.rb:162:in start'\n passenger (2.2.4) lib/phusion_passenger/railz/application_spawner.rb:213:instart'\n 乘客 (2.2.4) lib/phusion_passenger/spawn_manager.rb:261:in spawn_rails_application'\n passenger (2.2.4) lib/phusion_passenger/abstract_server_collection.rb:126:inlookup_or_add '\n 乘客 (2.2.4) lib/phusion_passenger/spawn_manager.rb:255:inspawn_rails_application'\n passenger (2.2.4) lib/phusion_passenger/abstract_server_collection.rb:80:in同步'\n 乘客 (2.2.4) lib/phusion_passenger/abstract_server_collection.rb:79:in synchronize'\n passenger (2.2.4) lib/phusion_passenger/spawn_manager.rb:254:inspawn_rails_application'\n 乘客 (2.2.4) lib/phusion_passenger/spawn_manager.rb:153:in spawn_application'\n passenger (2.2.4) lib/phusion_passenger/spawn_manager.rb:286:inhandle_spawn_application'\n 乘客 (2.2. 4) lib/phusion_passenger/abstract_server.rb:351:in __send__'\n passenger (2.2.4) lib/phusion_passenger/abstract_server.rb:351:inmain_loop'\n 乘客 (2.2.4) lib/phusion_passenger/abstract_server.rb:195:in start_synchronously'\n\n" Aug 08 17:06:14 railsapp rails[4666]: "/!\\ FAILSAFE /!\\ Sat Aug 08 17:06:14 +0000 2009\n Status: 500 Internal Server Error\n undefined methodeach' for 1:Fixnum\n /opt/ruby-enterprise-1.8 .6-20090610/lib/ruby/gems/1.8/gems/actionpack-2.3.3/lib/action_controller/base.rb:489:in filter_parameters'\n /opt/ruby-enterprise-1.8.6-20090610/lib/ruby/gems/1.8/gems/actionpack-2.3.3/lib/action_controller/base.rb:496:infilter_parameters'\n /opt/ruby-enterprise-1.8.6-20090610/lib /ruby/gems/1.8/gems/actionpack-2.3.3/lib/action_controller/base.rb:495:incollect'\n /opt/ruby-enterprise-1.8.6-20090610/lib/ruby/gems/1.8/gems/actionpack-2.3.3/lib/action_controller/base.rb:495:infilter_parameters'\n /opt/ruby-enterprise-1.8.6-20090610/lib/ruby/gems/1.8/gems/actionpack-2.3.3/lib/action_controller/base.rb:489:in each'\n /opt/ruby-enterprise-1.8.6-20090610/lib/ruby/gems/1.8/gems/actionpack-2.3.3/lib/action_controller/base.rb:489:infilter_parameters'\n /home /deploy/public_html/railsapp/releases/20090808155352/vendor/plugins/hoptoad_notifier/lib/hoptoad_notifier.rb:309:in notify_hoptoad clean_notice'\n /home/deploy/public_html/railsapp/releases/20090808155352/vendor/plugins/hoptoad_notifier/lib/hoptoad_notifier.rb:235:in'\n /home/deploy/public_html/railsapp/releases/20090808155352/vendor/plugins/hoptoad_notifier/lib /hoptoad_notifier.rb:226:in rescue_action_in_public'\n /opt/ruby-enterprise-1.8.6-20090610/lib/ruby/gems/1.8/gems/actionpack-2.3.3/lib/action_controller/rescue.rb:154:inrescue_action_without_handler'\n /opt/ruby-enterprise-1.8.6-20090610/lib/ruby/gems/1.8/gems/actionpack-2.3.3/lib/action_controller/rescue.rb:74 :inrescue_action'\n /opt/ruby-enterprise-1.8.6-20090610/lib/ruby/gems/1.8/gems/actionpack-2.3.3/lib/action_controller/base.rb:527:in发送'\n /opt/ruby-enterprise-1.8.6-20090610/lib/ruby/gems/1.8/gems/actionpack-2.3.3/lib/action_controller/base.rb:527:inprocess_without_filters'\n /opt/ruby-enterprise-1.8.6-20090610/lib/ruby/gems/1.8/gems/actionpack-2.3.3/lib/action_controller/filters.rb:606:in进程'\n /opt/ruby-enterprise-1.8.6-20090610/lib/ruby/gems/1.8/gems/actionpack-2.3.3/lib/action_controller/rescue.rb:65:in call_with_exception'\n /opt/ruby-enterprise-1.8.6-20090610/lib/ruby/gems/1.8/gems/actionpack-2.3.3/lib/action_controller/dispatcher.rb:91:indispatch'\n /opt /ruby-enterprise-1.8.6-20090610/lib/ruby/gems/1.8/gems/actionpack-2.3.3/lib/action_controller/dispatcher.rb:111:in _call'\n /opt/ruby-enterprise-1.8.6-20090610/lib/ruby/gems/1.8/gems/actionpack-2.3.3/lib/action_controller/dispatcher.rb:82:ininitialize'\n /opt/ruby-enterprise-1.8 .6-20090610/lib/ruby/gems/1.8/gems/passenger-2.2.4/vendor/rack-1.0.0-git/lib/rack/head.rb:9:in call'\n /opt/ruby-enterprise-1.8.6-20090610/lib/ruby/gems/1.8/gems/passenger-2.2.4/vendor/rack-1.0.0-git/lib/rack/head.rb:9:incall'\n /opt/ruby -enterprise-1.8.6-20090610/lib/ruby/gems/1.8/gems/passenger-2.2.4/vendor/rack-1.0.0-git/lib/rack/methodoverride.rb:24:in call'\n /opt/ruby-enterprise-1.8.6-20090610/lib/ruby/gems/1.8/gems/actionpack-2.3.3/lib/action_controller/params_parser.rb:15:incall'\n /opt/ruby-enterprise-1.8.6-20090610/lib/ruby/gems/1.8/gems/actionpack-2.3.3/lib/action_controller/session/abstract_store.rb:122:incall'\n /opt/ruby-enterprise-1.8.6-20090610/lib/ruby/gems/1.8/gems/activerecord-2.3.3/lib/active_record/query_cache.rb:29:in调用'\n /opt/ruby-enterprise-1.8.6-20090610/lib/ruby/gems/1.8/gems/activerecord-2.3.3/lib/active_record/connection_adapters/abstract/query_cache.rb:34:in cache'\n /opt/ruby-enterprise-1.8.6-20090610/lib/ruby/gems/1.8/gems/activerecord-2.3.3/lib/active_record/query_cache.rb:9:incache' \n /opt/ruby-enterprise-1.8.6-20090610/lib/ruby/gems/1.8/gems/activerecord-2.3.3/lib/active_record/query_cache.rb:28:in call'\n /opt/ruby-enterprise-1.8.6-20090610/lib/ruby/gems/1.8/gems/activerecord-2.3.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:361:incall'\n /opt/ruby -enterprise-1.8.6-20090610/lib/ruby/gems/1.8/gems/actionpack-2.3.3/lib/action_controller/failsafe.rb:26:in call'\n /opt/ruby-enterprise-1.8.6-20090610/lib/ruby/gems/1.8/gems/passenger-2.2.4/vendor/rack-1.0.0-git/lib/rack/lock.rb:11:incall'\n /opt/ruby-enterprise-1.8.6 -20090610/lib/ruby/gems/1.8/gems/passenger-2.2.4/vendor/rack-1.0.0-git/lib/rack/lock.rb:11:in synchronize'\n /opt/ruby-enterprise-1.8.6-20090610/lib/ruby/gems/1.8/gems/passenger-2.2.4/vendor/rack-1.0.0-git/lib/rack/lock.rb:11:incall'\n /opt/ruby-enterprise -1.8.6-20090610/lib/ruby/gems/1.8/gems/actionpack-2.3.3/lib/action_controller/dispatcher.rb:106:incall'\n /opt/ruby-enterprise-1.8.6-20090610/lib/ruby/gems/1.8/gems/passenger-2.2.4/lib/phusion_passenger/rack/request_handler.rb:91:inprocess_request'\n /opt/ruby-enterprise-1.8.6-20090610/lib/ruby/gems/1.8/gems/passenger-2.2.4/lib/phusion_passenger/abstract_request_handler.rb:206:in main_loop'\n /opt/ruby-enterprise-1.8.6-20090610/lib/ruby/gems/1.8/gems/passenger-2.2.4/lib/phusion_passenger/railz/application_spawner.rb:376:instart_request_handler'\n /opt /ruby-enterprise-1.8.6-20090610/lib/ruby/gems/1.8/gems/passenger-2.2.4/lib/phusion_passenger/railz/application_spawner.rb:334:in handle_spawn_application'\n /opt/ruby-enterprise-1.8.6-20090610/lib/ruby/gems/1.8/gems/passenger-2.2.4/lib/phusion_passenger/utils.rb:182:insafe_fork'\n /opt/ruby-enterprise -1.8.6-20090610/lib/ruby/gems/1.8/gems/passenger-2.2.4/lib/phusion_passenger/railz/application_spawner.rb:332:in handle_spawn_application'\n /opt/ruby-enterprise-1.8.6-20090610/lib/ruby/gems/1.8/gems/passenger-2.2.4/lib/phusion_passenger/abstract_server.rb:351:insend '\n /opt/ruby-enterprise-1.8.6 -20090610/lib/ruby/gems/1.8/gems/passenger-2.2.4/lib/phusion_passenger/abstract_server.rb:351:in main_loop'\n /opt/ruby-enterprise-1.8.6-20090610/lib/ruby/gems/1.8/gems/passenger-2.2.4/lib/phusion_passenger/abstract_server.rb:195:instart_synchronously'\n /opt/ruby-enterprise-1.8.6-20090610/lib/ruby /gems/1.8/gems/passenger-2.2.4/lib/phusion_passenger/abstract_server.rb:162:instart'\n /opt/ruby-enterprise-1.8.6-20090610/lib/ruby/gems/1.8/gems/passenger-2.2.4/lib/phusion_passenger/railz/application_spawner.rb:213:in开始'\n /opt/ruby-enterprise-1.8.6-20090610/lib/ruby/gems/1.8/gems/passenger-2.2.4/lib/phusion_passenger/spawn_manager.rb:261:in spawn_rails_application'\n /opt/ruby-enterprise-1.8.6-20090610/lib/ruby/gems/1.8/gems/passenger-2.2.4/lib/phusion_passenger/abstract_server_collection.rb:126:inlookup_or_add'\n /opt /ruby-enterprise-1.8.6-20090610/lib/ruby/gems/1.8/gems/passenger-2.2.4/lib/phusion_passenger/spawn_manager.rb:255:in spawn_rails_application'\n /opt/ruby-enterprise-1.8.6-20090610/lib/ruby/gems/1.8/gems/passenger-2.2.4/lib/phusion_passenger/abstract_server_collection.rb:80:insynchronize'\n /opt/ruby-enterprise-1.8 .6-20090610/lib/ruby/gems/1.8/gems/passenger-2.2.4/lib/phusion_passenger/abstract_server_collection.rb:79:in synchronize'\n /opt/ruby-enterprise-1.8.6-20090610/lib/ruby/gems/1.8/gems/passenger-2.2.4/lib/phusion_passenger/spawn_manager.rb:254:inspawn_rails_application'\n /opt/ruby-enterprise-1.8.6-20090610/lib /ruby/gems/1.8/gems/passenger-2.2.4/lib/phusion_passenger/spawn_manager.rb:153:in spawn_application'\n /opt/ruby-enterprise-1.8.6-20090610/lib/ruby/gems/1.8/gems/passenger-2.2.4/lib/phusion_passenger/spawn_manager.rb:286:inhandle_spawn_application'\n /opt/ruby-enterprise-1.8.6-20090610/lib/ruby/gems/1.8 /gems/passenger-2.2.4/lib/phusion_passenger/abstract_server.rb:351:in__send__'\n /opt/ruby-enterprise-1.8.6-20090610/lib/ruby/gems/1.8/gems/passenger-2.2.4/lib/phusion_passenger/abstract_server.rb:351:inmain_loop'\n /opt/ruby-enterprise-1.8.6-20090610/lib/ruby/gems/1.8/gems/passenger-2.2.4/lib/phusion_passenger/abstract_server.rb:195:in `start_synchronously'\n / opt/ruby-enterprise-1.8.6-20090610/lib/ruby/gems/1.8/gems/passenger-2.2.4/bin/

4

1 回答 1

0

删除 Hoptoad 并重试。从我在堆栈跟踪的文本墙中可以看出,您的控制器没有被调用。试图解析传入的参数时它正在爆炸。

于 2009-08-10T04:50:34.590 回答