This project is archived and is in readonly mode.

#470 ✓resolved
Mark Myers

Script.aculo.us helpers "drop_receiving_element" and "sortable_element" broken in Rails 2.1.0

Reported by Mark Myers | June 22nd, 2008 @ 08:05 PM

Script.aculo.us helpers "drop_receiving_element" and

"sortable_element" calling against a nil object and returning a

NoMethodError exception.

I have tested this same code on Rails 1.2.6 and it works successfully.

Example view code 1:

drag

<%= draggable_element :dragit %>

drop here.

<%= drop_receiving_element :dropHelperDIV, :hoverclass => 'hover' %>

Error "NoMethodError":

You have a nil object when you didn't expect it!

You might have expected an instance of ActiveRecord::Base.

The error occurred while evaluating nil.[]

Application Trace:

/Library/Ruby/Gems/1.8/gems/actionpack-2.1.0/lib/action_controller/

url_rewriter.rb:102:in `rewrite_url'

/Library/Ruby/Gems/1.8/gems/actionpack-2.1.0/lib/action_controller/

url_rewriter.rb:88:in `rewrite'

/Library/Ruby/Gems/1.8/gems/actionpack-2.1.0/lib/action_controller/

base.rb:621:in `url_for'

/Library/Ruby/Gems/1.8/gems/actionpack-2.1.0/lib/action_view/helpers/

url_helper.rb:76:in `send'

/Library/Ruby/Gems/1.8/gems/actionpack-2.1.0/lib/action_view/helpers/

url_helper.rb:76:in `url_for'

/Library/Ruby/Gems/1.8/gems/actionpack-2.1.0/lib/action_view/helpers/

prototype_helper.rb:461:in `remote_function'

/Library/Ruby/Gems/1.8/gems/actionpack-2.1.0/lib/action_view/helpers/

scriptaculous_helper.rb:212:in `drop_receiving_element_js'

/Library/Ruby/Gems/1.8/gems/actionpack-2.1.0/lib/action_view/helpers/

scriptaculous_helper.rb:207:in `drop_receiving_element'

app/views/chapter4/draggables.html.erb:5:in

`_run_erb_47app47views47chapter447draggables46html46erb'

/Library/Ruby/Gems/1.8/gems/actionpack-2.1.0/lib/action_view/base.rb:

338:in `send'

/Library/Ruby/Gems/1.8/gems/actionpack-2.1.0/lib/action_view/base.rb:

338:in `execute'

/Library/Ruby/Gems/1.8/gems/actionpack-2.1.0/lib/action_view/

template_handlers/compilable.rb:29:in `send'

/Library/Ruby/Gems/1.8/gems/actionpack-2.1.0/lib/action_view/

template_handlers/compilable.rb:29:in `render'

/Library/Ruby/Gems/1.8/gems/actionpack-2.1.0/lib/action_view/

template.rb:35:in `render'

/Library/Ruby/Gems/1.8/gems/actionpack-2.1.0/lib/action_view/

template.rb:22:in `render_template'

/Library/Ruby/Gems/1.8/gems/actionpack-2.1.0/lib/action_view/base.rb:

245:in `render_file'

/Library/Ruby/Gems/1.8/gems/actionpack-2.1.0/lib/action_controller/

base.rb:1108:in `render_for_file'

/Library/Ruby/Gems/1.8/gems/actionpack-2.1.0/lib/action_controller/

base.rb:841:in `render_with_no_layout'

/Library/Ruby/Gems/1.8/gems/actionpack-2.1.0/lib/action_controller/

layout.rb:251:in `render_without_benchmark'

/Library/Ruby/Gems/1.8/gems/actionpack-2.1.0/lib/action_controller/

benchmarking.rb:51:in `render'

/Library/Ruby/Gems/1.8/gems/activesupport-2.1.0/lib/active_support/

core_ext/benchmark.rb:8:in `realtime'

/Library/Ruby/Gems/1.8/gems/actionpack-2.1.0/lib/action_controller/

benchmarking.rb:51:in `render'

/Library/Ruby/Gems/1.8/gems/actionpack-2.1.0/lib/action_controller/

base.rb:1157:in `default_render'

/Library/Ruby/Gems/1.8/gems/actionpack-2.1.0/lib/action_controller/

base.rb:1168:in `perform_action_without_filters'

/Library/Ruby/Gems/1.8/gems/actionpack-2.1.0/lib/action_controller/

filters.rb:580:in `call_filters'

/Library/Ruby/Gems/1.8/gems/actionpack-2.1.0/lib/action_controller/

filters.rb:573:in `perform_action_without_benchmark'

/Library/Ruby/Gems/1.8/gems/actionpack-2.1.0/lib/action_controller/

benchmarking.rb:68:in `perform_action_without_rescue'

/Library/Ruby/Gems/1.8/gems/actionpack-2.1.0/lib/action_controller/

benchmarking.rb:68:in `perform_action_without_rescue'

/Library/Ruby/Gems/1.8/gems/actionpack-2.1.0/lib/action_controller/

rescue.rb:201:in `perform_action_without_caching'

/Library/Ruby/Gems/1.8/gems/actionpack-2.1.0/lib/action_controller/

caching/sql_cache.rb:13:in `perform_action'

/Library/Ruby/Gems/1.8/gems/activerecord-2.1.0/lib/active_record/

connection_adapters/abstract/query_cache.rb:33:in `cache'

/Library/Ruby/Gems/1.8/gems/activerecord-2.1.0/lib/active_record/

query_cache.rb:8:in `cache'

/Library/Ruby/Gems/1.8/gems/actionpack-2.1.0/lib/action_controller/

caching/sql_cache.rb:12:in `perform_action'

/Library/Ruby/Gems/1.8/gems/actionpack-2.1.0/lib/action_controller/

base.rb:529:in `send'

/Library/Ruby/Gems/1.8/gems/actionpack-2.1.0/lib/action_controller/

base.rb:529:in `process_without_filters'

/Library/Ruby/Gems/1.8/gems/actionpack-2.1.0/lib/action_controller/

filters.rb:569:in `process_without_session_management_support'

/Library/Ruby/Gems/1.8/gems/actionpack-2.1.0/lib/action_controller/

session_management.rb:130:in `process'

/Library/Ruby/Gems/1.8/gems/actionpack-2.1.0/lib/action_controller/

base.rb:389:in `process'

/Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/lib/mongrel/rails.rb:76:in

`process'

/Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/lib/mongrel/rails.rb:74:in

`synchronize'

/Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/lib/mongrel/rails.rb:74:in

`process'

/Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/lib/mongrel.rb:159:in

`process_client'

/Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/lib/mongrel.rb:158:in `each'

/Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/lib/mongrel.rb:158:in

`process_client'

/Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/lib/mongrel.rb:285:in `run'

/Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/lib/mongrel.rb:285:in

`initialize'

/Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/lib/mongrel.rb:285:in `new'

/Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/lib/mongrel.rb:285:in `run'

/Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/lib/mongrel.rb:268:in

`initialize'

/Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/lib/mongrel.rb:268:in `new'

/Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/lib/mongrel.rb:268:in `run'

/Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/lib/mongrel/configurator.rb:

282:in `run'

/Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/lib/mongrel/configurator.rb:

281:in `each'

/Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/lib/mongrel/configurator.rb:

281:in `run'

/Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/bin/mongrel_rails:128:in `run'

/Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/lib/mongrel/command.rb:

212:in `run'

/Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/bin/mongrel_rails:281

/Library/Ruby/Gems/1.8/gems/activesupport-2.1.0/lib/active_support/

dependencies.rb:502:in `load'

/Library/Ruby/Gems/1.8/gems/activesupport-2.1.0/lib/active_support/

dependencies.rb:502:in `load'

/Library/Ruby/Gems/1.8/gems/activesupport-2.1.0/lib/active_support/

dependencies.rb:354:in `new_constants_in'

/Library/Ruby/Gems/1.8/gems/activesupport-2.1.0/lib/active_support/

dependencies.rb:502:in `load'

/Library/Ruby/Gems/1.8/gems/rails-2.1.0/lib/commands/servers/

mongrel.rb:64

/Library/Ruby/Gems/1.8/gems/activesupport-2.1.0/lib/active_support/

dependencies.rb:509:in `require'

/Library/Ruby/Gems/1.8/gems/activesupport-2.1.0/lib/active_support/

dependencies.rb:354:in `new_constants_in'

/Library/Ruby/Gems/1.8/gems/activesupport-2.1.0/lib/active_support/

dependencies.rb:509:in `require'

/Library/Ruby/Gems/1.8/gems/rails-2.1.0/lib/commands/server.rb:39

-------------------------------------------------------------------------------------------------------------------------------------

Example view code 2:

  • x Buy milk
  • x Take out trash
  • x Make first million

<%= sortable_element :listHandle, :handle => 'handle' %>

Error "NoMethodError":

You have a nil object when you didn't expect it!

You might have expected an instance of ActiveRecord::Base.

The error occurred while evaluating nil.[]

Application Trace:

/Library/Ruby/Gems/1.8/gems/actionpack-2.1.0/lib/action_controller/

url_rewriter.rb:102:in `rewrite_url'

/Library/Ruby/Gems/1.8/gems/actionpack-2.1.0/lib/action_controller/

url_rewriter.rb:88:in `rewrite'

/Library/Ruby/Gems/1.8/gems/actionpack-2.1.0/lib/action_controller/

base.rb:621:in `url_for'

/Library/Ruby/Gems/1.8/gems/actionpack-2.1.0/lib/action_view/helpers/

url_helper.rb:76:in `send'

/Library/Ruby/Gems/1.8/gems/actionpack-2.1.0/lib/action_view/helpers/

url_helper.rb:76:in `url_for'

/Library/Ruby/Gems/1.8/gems/actionpack-2.1.0/lib/action_view/helpers/

prototype_helper.rb:461:in `remote_function'

/Library/Ruby/Gems/1.8/gems/actionpack-2.1.0/lib/action_view/helpers/

scriptaculous_helper.rb:141:in `sortable_element_js'

/Library/Ruby/Gems/1.8/gems/actionpack-2.1.0/lib/action_view/helpers/

scriptaculous_helper.rb:136:in `sortable_element'

app/views/chapter4/draggables.html.erb:7:in

`_run_erb_47app47views47chapter447draggables46html46erb'

/Library/Ruby/Gems/1.8/gems/actionpack-2.1.0/lib/action_view/base.rb:

338:in `send'

/Library/Ruby/Gems/1.8/gems/actionpack-2.1.0/lib/action_view/base.rb:

338:in `execute'

/Library/Ruby/Gems/1.8/gems/actionpack-2.1.0/lib/action_view/

template_handlers/compilable.rb:29:in `send'

/Library/Ruby/Gems/1.8/gems/actionpack-2.1.0/lib/action_view/

template_handlers/compilable.rb:29:in `render'

/Library/Ruby/Gems/1.8/gems/actionpack-2.1.0/lib/action_view/

template.rb:35:in `render'

/Library/Ruby/Gems/1.8/gems/actionpack-2.1.0/lib/action_view/

template.rb:22:in `render_template'

/Library/Ruby/Gems/1.8/gems/actionpack-2.1.0/lib/action_view/base.rb:

245:in `render_file'

/Library/Ruby/Gems/1.8/gems/actionpack-2.1.0/lib/action_controller/

base.rb:1108:in `render_for_file'

/Library/Ruby/Gems/1.8/gems/actionpack-2.1.0/lib/action_controller/

base.rb:841:in `render_with_no_layout'

/Library/Ruby/Gems/1.8/gems/actionpack-2.1.0/lib/action_controller/

layout.rb:251:in `render_without_benchmark'

/Library/Ruby/Gems/1.8/gems/actionpack-2.1.0/lib/action_controller/

benchmarking.rb:51:in `render'

/Library/Ruby/Gems/1.8/gems/activesupport-2.1.0/lib/active_support/

core_ext/benchmark.rb:8:in `realtime'

/Library/Ruby/Gems/1.8/gems/actionpack-2.1.0/lib/action_controller/

benchmarking.rb:51:in `render'

/Library/Ruby/Gems/1.8/gems/actionpack-2.1.0/lib/action_controller/

base.rb:1157:in `default_render'

/Library/Ruby/Gems/1.8/gems/actionpack-2.1.0/lib/action_controller/

base.rb:1168:in `perform_action_without_filters'

/Library/Ruby/Gems/1.8/gems/actionpack-2.1.0/lib/action_controller/

filters.rb:580:in `call_filters'

/Library/Ruby/Gems/1.8/gems/actionpack-2.1.0/lib/action_controller/

filters.rb:573:in `perform_action_without_benchmark'

/Library/Ruby/Gems/1.8/gems/actionpack-2.1.0/lib/action_controller/

benchmarking.rb:68:in `perform_action_without_rescue'

/Library/Ruby/Gems/1.8/gems/actionpack-2.1.0/lib/action_controller/

benchmarking.rb:68:in `perform_action_without_rescue'

/Library/Ruby/Gems/1.8/gems/actionpack-2.1.0/lib/action_controller/

rescue.rb:201:in `perform_action_without_caching'

/Library/Ruby/Gems/1.8/gems/actionpack-2.1.0/lib/action_controller/

caching/sql_cache.rb:13:in `perform_action'

/Library/Ruby/Gems/1.8/gems/activerecord-2.1.0/lib/active_record/

connection_adapters/abstract/query_cache.rb:33:in `cache'

/Library/Ruby/Gems/1.8/gems/activerecord-2.1.0/lib/active_record/

query_cache.rb:8:in `cache'

/Library/Ruby/Gems/1.8/gems/actionpack-2.1.0/lib/action_controller/

caching/sql_cache.rb:12:in `perform_action'

/Library/Ruby/Gems/1.8/gems/actionpack-2.1.0/lib/action_controller/

base.rb:529:in `send'

/Library/Ruby/Gems/1.8/gems/actionpack-2.1.0/lib/action_controller/

base.rb:529:in `process_without_filters'

/Library/Ruby/Gems/1.8/gems/actionpack-2.1.0/lib/action_controller/

filters.rb:569:in `process_without_session_management_support'

/Library/Ruby/Gems/1.8/gems/actionpack-2.1.0/lib/action_controller/

session_management.rb:130:in `process'

/Library/Ruby/Gems/1.8/gems/actionpack-2.1.0/lib/action_controller/

base.rb:389:in `process'

/Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/lib/mongrel/rails.rb:76:in

`process'

/Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/lib/mongrel/rails.rb:74:in

`synchronize'

/Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/lib/mongrel/rails.rb:74:in

`process'

/Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/lib/mongrel.rb:159:in

`process_client'

/Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/lib/mongrel.rb:158:in `each'

/Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/lib/mongrel.rb:158:in

`process_client'

/Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/lib/mongrel.rb:285:in `run'

/Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/lib/mongrel.rb:285:in

`initialize'

/Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/lib/mongrel.rb:285:in `new'

/Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/lib/mongrel.rb:285:in `run'

/Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/lib/mongrel.rb:268:in

`initialize'

/Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/lib/mongrel.rb:268:in `new'

/Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/lib/mongrel.rb:268:in `run'

/Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/lib/mongrel/configurator.rb:

282:in `run'

/Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/lib/mongrel/configurator.rb:

281:in `each'

/Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/lib/mongrel/configurator.rb:

281:in `run'

/Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/bin/mongrel_rails:128:in `run'

/Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/lib/mongrel/command.rb:

212:in `run'

/Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/bin/mongrel_rails:281

/Library/Ruby/Gems/1.8/gems/activesupport-2.1.0/lib/active_support/

dependencies.rb:502:in `load'

/Library/Ruby/Gems/1.8/gems/activesupport-2.1.0/lib/active_support/

dependencies.rb:502:in `load'

/Library/Ruby/Gems/1.8/gems/activesupport-2.1.0/lib/active_support/

dependencies.rb:354:in `new_constants_in'

/Library/Ruby/Gems/1.8/gems/activesupport-2.1.0/lib/active_support/

dependencies.rb:502:in `load'

/Library/Ruby/Gems/1.8/gems/rails-2.1.0/lib/commands/servers/

mongrel.rb:64

/Library/Ruby/Gems/1.8/gems/activesupport-2.1.0/lib/active_support/

dependencies.rb:509:in `require'

/Library/Ruby/Gems/1.8/gems/activesupport-2.1.0/lib/active_support/

dependencies.rb:354:in `new_constants_in'

/Library/Ruby/Gems/1.8/gems/activesupport-2.1.0/lib/active_support/

dependencies.rb:509:in `require'

/Library/Ruby/Gems/1.8/gems/rails-2.1.0/lib/commands/server.rb:39

Comments and changes to this ticket

  • Mark Myers

    Mark Myers June 23rd, 2008 @ 07:23 AM

    This has been verified broken on two separate servers.

  • Bill Coomer

    Bill Coomer July 7th, 2008 @ 04:12 PM

    • Tag cleared.

    I have essentially the same problem. If I do the following in a view:

    Drop Here

    <%= drop_receiving_element_js :dropTest, :hoverclass => "hover" %>

    I get the

    "You have a nil object when you didn't expect it!

    You might have expected an instance of ActiveRecord::Base.

    The error occurred while evaluating nil.[]"

    error. I can create this error consistently using Rails 2.1.0, ruby 1.8.6 or 1.8.5, running on a win32 platform using mongrel.

  • deliverator

    deliverator August 3rd, 2008 @ 11:58 PM

    Same problem using rails 2.1.0 with mongrel on OS X 10.5.4, Ruby 1.8.6 (2008-03-03 patchlevel 114)...

    And also using rails 2.1.0 with mongrel on Gentoo with ruby 1.8.6 (2008-03-03 patchlevel 114).

  • Dieter Komendera

    Dieter Komendera August 4th, 2008 @ 07:10 AM

    This seems to be already fixed by commit 96708af6a58a48c2324a3bf8d34232bc29b398c9: http://github.com/rails/rails/co...

  • josh

    josh November 10th, 2008 @ 06:51 PM

    • State changed from “new” to “resolved”

Create your profile

Help contribute to this project by taking a few moments to create your personal profile. Create your profile »

<h2 style="font-size: 14px">Tickets have moved to Github</h2>

The new ticket tracker is available at <a href="https://github.com/rails/rails/issues">https://github.com/rails/rails/issues</a>

Pages