Jamie Orchard-Hays
2006-Nov-04 02:30 UTC
[Rails] headers[''Content-Type''] & link_to_remote on Rails Edge
I''m on rails edge and am calling an after filter on my actions. Works except for my ajax calls via link_to_remote. When I inspect headers, I see the ''Content-Type'' is key for an object rather than a string. Shouldn''t it be a string? Anyone know if this is a bug or if I''m dealing with this incorrectly. Thanks, Jamie The code: after_filter :set_charset def set_charset logger.debug("!!!!---- headers: #{headers.inspect}") unless headers[''Content-Type''] =~ /charset/i headers[''Content-Type''] ||= "text/html" headers[''Content-Type''] += ''; charset=utf-8'' end headers[''Pragma''] = ''no-cache'' headers[''Cache-Control''] = ''no-cache, no-store, must-revalidate'' end from the logger: !!!!---- headers: {"Status"=>"200 OK", "cookie"=>[], "Content-Type"=>#<Mime::Type:0x1316954 @synonyms=["application/javascript", "application/x-javascript"], @symbol=:js, @string="text/javascript">, "Cache-Control"=>"no-cache"} Part of the stack trace: NoMethodError (undefined method `+'' for #<Mime::Type:0x1316954>): /app/controllers/application.rb:87:in `set_charset'' .//vendor/rails/actionpack/lib/action_controller/filters.rb: 471:in `call'' .//vendor/rails/actionpack/lib/action_controller/filters.rb: 465:in `call'' .//vendor/rails/actionpack/lib/action_controller/filters.rb: 633:in `call_filter'' .//vendor/rails/actionpack/lib/action_controller/filters.rb: 615:in `perform_action_without_benchmark'' .//vendor/rails/actionpack/lib/action_controller/benchmarking.rb: 66:in `perform_action_without_rescue''