to_sym error on ActionController request
I'm creating a plugin to identify mobile device requests. Any controller that calls is_mobile_aware should have '.html' and '.mobile' templates for all actions. Right now I'm just testing out my code. I'm trying to get every request to use the '.mobile' template, but I'm getting an error when I make requests. Here is the code, with the error below:
Code:
module ActionController module MobileAware def self.included(base) base.extend(ClassMethods) end module ClassMethods def is_mobile_aware include ActionController::MobileAware::InstanceMethods before_filter :set_format end end module InstanceMethods def set_format request.format = :mobile end end end end
Error
undefined method `to_sym' for nil:NilClass
Request
Parameters:
{"format"=>"mobile"}
Thanks for your help!
Full trace:
activesupport (3.0.3) lib/active_support/whiny_nil.rb:48:in `method_missing' actionpack (3.0.3) lib/action_controller/metal/rendering.rb:10:in `block in process_action' actionpack (3.0.3) lib/action_controll开发者_开发百科er/metal/rendering.rb:10:in `map' actionpack (3.0.3) lib/action_controller/metal/rendering.rb:10:in `process_action' actionpack (3.0.3) lib/abstract_controller/callbacks.rb:18:in `block in process_action' activesupport (3.0.3) lib/active_support/callbacks.rb:450:in `_run__233835139__process_action__997034143__callbacks' activesupport (3.0.3) lib/active_support/callbacks.rb:409:in `_run_process_action_callbacks' activesupport (3.0.3) lib/active_support/callbacks.rb:93:in `run_callbacks' actionpack (3.0.3) lib/abstract_controller/callbacks.rb:17:in `process_action' actionpack (3.0.3) lib/action_controller/metal/instrumentation.rb:30:in `block in process_action' activesupport (3.0.3) lib/active_support/notifications.rb:52:in `block in instrument' activesupport (3.0.3) lib/active_support/notifications/instrumenter.rb:21:in `instrument' activesupport (3.0.3) lib/active_support/notifications.rb:52:in `instrument' actionpack (3.0.3) lib/action_controller/metal/instrumentation.rb:29:in `process_action' actionpack (3.0.3) lib/action_controller/metal/rescue.rb:17:in `process_action' actionpack (3.0.3) lib/abstract_controller/base.rb:120:in `process' actionpack (3.0.3) lib/abstract_controller/rendering.rb:40:in `process' actionpack (3.0.3) lib/action_controller/metal.rb:138:in `dispatch' actionpack (3.0.3) lib/action_controller/metal/rack_delegation.rb:14:in `dispatch' actionpack (3.0.3) lib/action_controller/metal.rb:178:in `block in action' actionpack (3.0.3) lib/action_dispatch/routing/route_set.rb:62:in `call' actionpack (3.0.3) lib/action_dispatch/routing/route_set.rb:62:in `dispatch' actionpack (3.0.3) lib/action_dispatch/routing/route_set.rb:27:in `call' rack-mount (0.6.13) lib/rack/mount/route_set.rb:148:in `block in call' rack-mount (0.6.13) lib/rack/mount/code_generation.rb:93:in `block in recognize' rack-mount (0.6.13) lib/rack/mount/code_generation.rb:75:in `optimized_each' rack-mount (0.6.13) lib/rack/mount/code_generation.rb:92:in `recognize' rack-mount (0.6.13) lib/rack/mount/route_set.rb:139:in `call' actionpack (3.0.3) lib/action_dispatch/routing/route_set.rb:492:in `call' hoptoad_notifier (2.4.4) lib/hoptoad_notifier/rack.rb:27:in `call' haml (3.0.25) lib/sass/plugin/rack.rb:41:in `call' actionpack (3.0.3) lib/action_dispatch/middleware/best_standards_support.rb:17:in `call' actionpack (3.0.3) lib/action_dispatch/middleware/head.rb:14:in `call' rack (1.2.1) lib/rack/methodoverride.rb:24:in `call' actionpack (3.0.3) lib/action_dispatch/middleware/params_parser.rb:21:in `call' actionpack (3.0.3) lib/action_dispatch/middleware/flash.rb:182:in `call' actionpack (3.0.3) lib/action_dispatch/middleware/session/abstract_store.rb:149:in `call' actionpack (3.0.3) lib/action_dispatch/middleware/cookies.rb:295:in `call' activerecord (3.0.3) lib/active_record/query_cache.rb:32:in `block in call' activerecord (3.0.3) lib/active_record/connection_adapters/abstract/query_cache.rb:28:in `cache' activerecord (3.0.3) lib/active_record/query_cache.rb:12:in `cache' activerecord (3.0.3) lib/active_record/query_cache.rb:31:in `call' activerecord (3.0.3) lib/active_record/connection_adapters/abstract/connection_pool.rb:353:in `call' actionpack (3.0.3) lib/action_dispatch/middleware/callbacks.rb:46:in `block in call' activesupport (3.0.3) lib/active_support/callbacks.rb:415:in `_run_call_callbacks' actionpack (3.0.3) lib/action_dispatch/middleware/callbacks.rb:44:in `call' rack (1.2.1) lib/rack/sendfile.rb:107:in `call' actionpack (3.0.3) lib/action_dispatch/middleware/remote_ip.rb:48:in `call' actionpack (3.0.3) lib/action_dispatch/middleware/show_exceptions.rb:46:in `call' railties (3.0.3) lib/rails/rack/logger.rb:13:in `call' rack (1.2.1) lib/rack/runtime.rb:17:in `call' activesupport (3.0.3) lib/active_support/cache/strategy/local_cache.rb:72:in `call' hoptoad_notifier (2.4.4) lib/hoptoad_notifier/user_informer.rb:12:in `call' rack (1.2.1) lib/rack/lock.rb:11:in `block in call' :10:in `synchronize' rack (1.2.1) lib/rack/lock.rb:11:in `call' actionpack (3.0.3) lib/action_dispatch/middleware/static.rb:30:in `call' railties (3.0.3) lib/rails/application.rb:168:in `call' railties (3.0.3) lib/rails/application.rb:77:in `method_missing' railties (3.0.3) lib/rails/rack/log_tailer.rb:14:in `call' rack (1.2.1) lib/rack/content_length.rb:13:in `call' rack (1.2.1) lib/rack/handler/webrick.rb:52:in `service' C:/Ruby192/lib/ruby/1.9.1/webrick/httpserver.rb:111:in `service' C:/Ruby192/lib/ruby/1.9.1/webrick/httpserver.rb:70:in `run' C:/Ruby192/lib/ruby/1.9.1/webrick/server.rb:183:in `block in start_thread'
精彩评论