Hi all,
Has anyone created a url type Gadget that hits a ruby on rails
controller? Seems that methods that process request parameters fail
before any code that I’ve written is reached. Am I missing something
here? Stacktrace and failing methods are included below. Thanks in
advance for any help!
James
You have a nil object when you didn’t expect it!
You might have expected an instance of Array.
The error occured while evaluating nil.include?
/opt/csw/lib/ruby/gems/1.8/gems/actionpack-1.12.3/lib/action_controller/cgi_ext/cgi_methods.rb:49:in
parse_request_parameters' /opt/csw/lib/ruby/gems/1.8/gems/actionpack-1.12.3/lib/action_controller/cgi_ext/cgi_methods.rb:47:in
parse_request_parameters’
/opt/csw/lib/ruby/gems/1.8/gems/actionpack-1.12.3/lib/action_controller/cgi_process.rb:70:in
request_parameters' /opt/csw/lib/ruby/gems/1.8/gems/actionpack-1.12.3/lib/action_controller/request.rb:12:in
parameters’
/opt/csw/lib/ruby/gems/1.8/gems/actionpack-1.12.3/lib/action_controller/session_management.rb:122:in
set_session_options_without_components' /opt/csw/lib/ruby/gems/1.8/gems/actionpack-1.12.3/lib/action_controller/components.rb:178:in
set_session_options’
/opt/csw/lib/ruby/gems/1.8/gems/actionpack-1.12.3/lib/action_controller/session_management.rb:116:in
process' /opt/csw/lib/ruby/gems/1.8/gems/rails-1.1.4/lib/dispatcher.rb:38:in
dispatch’
/opt/csw/lib/ruby/gems/1.8/gems/mongrel-0.3.13/lib/mongrel/rails.rb:82:in
process' /opt/csw/lib/ruby/1.8/thread.rb:135:in
synchronize’
/opt/csw/lib/ruby/gems/1.8/gems/mongrel-0.3.13/lib/mongrel/rails.rb:80:in
process' /opt/csw/lib/ruby/gems/1.8/gems/mongrel-0.3.13/lib/mongrel.rb:529:in
process_client’
/opt/csw/lib/ruby/gems/1.8/gems/mongrel-0.3.13/lib/mongrel.rb:528:in
process_client' /opt/csw/lib/ruby/gems/1.8/gems/mongrel-0.3.13/lib/mongrel.rb:597:in
run’
/opt/csw/lib/ruby/gems/1.8/gems/mongrel-0.3.13/lib/mongrel.rb:596:in
run' /opt/csw/lib/ruby/gems/1.8/gems/mongrel-0.3.13/lib/mongrel.rb:585:in
run’
/opt/csw/lib/ruby/gems/1.8/gems/mongrel-0.3.13/lib/mongrel.rb:909:in
run' /opt/csw/lib/ruby/gems/1.8/gems/mongrel-0.3.13/lib/mongrel.rb:908:in
run’
/opt/csw/lib/ruby/gems/1.8/gems/mongrel-0.3.13/bin/mongrel_rails:143:in
run' /opt/csw/lib/ruby/gems/1.8/gems/mongrel-0.3.13/lib/mongrel/command.rb:188:in
run’
/opt/csw/lib/ruby/gems/1.8/gems/mongrel-0.3.13/bin/mongrel_rails:247
/opt/csw/bin/mongrel_rails:18
Returns the request (POST/GET) parameters in a parsed form where
pairs such as “customer[address][street]” /
“Somewhere cool!” are translated into a full hash hierarchy, like
{ “customer” => { “address” => { “street” => “Somewhere cool!” } } }
def CGIMethods.parse_request_parameters(params)
parsed_params = {}
for key, value in params
value = [value] if key =~ /.*[]$/
unless key.include?(’[’) <- THIS IS WHERE THE CODE IS FAILING
# much faster to test for the most common case first (GET)
# and avoid the call to build_deep_hash
parsed_params[key] = get_typed_value(value[0])
else
build_deep_hash(get_typed_value(value[0]), parsed_params,
get_levels(key))
end
end
parsed_params
end