push_with_attributes for a has_many_through

I'm basing feeds/show.rhtml and feeds_controller.rb on

Chapter 12 - More Model Magic
Ruby on Rails For Dummies
by Barry Burd
John Wiley & Sons © 2007

specifically listings 12-12 and 12-14. Of course, it's now deprecated :frowning:

There's a has_many_through between the "feeds" and "tags" tables. The
join table is "colors", for lack of a better name. I believe that the
name of the join table and that it's a has_many_through are causing the
error message.

I have a screen shot at http://code.google.com/p/strawr/ , just click on
the add_a_tag.png. Up to that point, everything works. However, when I
click on the button I get the following error:

NoMethodError in FeedsController#add_some_tags

undefined method `push_with_attributes' for Tag:Class

RAILS_ROOT: ./script/../config/..
Application Trace | Framework Trace | Full Trace

/usr/lib/ruby/gems/1.8/gems/activerecord-1.15.5/lib/active_record/
base.rb:1238:in `method_missing'
/usr/lib/ruby/gems/1.8/gems/activerecord-1.15.5/lib/active_record/
associations/has_many_through_association.rb:120:in `send'
/usr/lib/ruby/gems/1.8/gems/activerecord-1.15.5/lib/active_record/
associations/has_many_through_association.rb:120:in `method_missing'
/usr/lib/ruby/gems/1.8/gems/activerecord-1.15.5/lib/active_record/
base.rb:946:in `with_scope'
/usr/lib/ruby/gems/1.8/gems/activerecord-1.15.5/lib/active_record/
associations/has_many_through_association.rb:120:in `method_missing'
/home/thufir/Desktop/strawr/app/controllers/feeds_controller.rb:88:in
`add_some_tags'
/home/thufir/Desktop/strawr/app/controllers/feeds_controller.rb:87:in
`each'
/home/thufir/Desktop/strawr/app/controllers/feeds_controller.rb:87:in
`add_some_tags'

/usr/lib/ruby/gems/1.8/gems/activerecord-1.15.5/lib/active_record/
base.rb:1238:in `method_missing'
/usr/lib/ruby/gems/1.8/gems/activerecord-1.15.5/lib/active_record/
associations/has_many_through_association.rb:120:in `send'
/usr/lib/ruby/gems/1.8/gems/activerecord-1.15.5/lib/active_record/
associations/has_many_through_association.rb:120:in `method_missing'
/usr/lib/ruby/gems/1.8/gems/activerecord-1.15.5/lib/active_record/
base.rb:946:in `with_scope'
/usr/lib/ruby/gems/1.8/gems/activerecord-1.15.5/lib/active_record/
associations/has_many_through_association.rb:120:in `method_missing'
/usr/lib/ruby/gems/1.8/gems/actionpack-1.13.5/lib/action_controller/
base.rb:1101:in `send'
/usr/lib/ruby/gems/1.8/gems/actionpack-1.13.5/lib/action_controller/
base.rb:1101:in `perform_action_without_filters'
/usr/lib/ruby/gems/1.8/gems/actionpack-1.13.5/lib/action_controller/
filters.rb:696:in `call_filters'
/usr/lib/ruby/gems/1.8/gems/actionpack-1.13.5/lib/action_controller/
filters.rb:688:in `perform_action_without_benchmark'
/usr/lib/ruby/gems/1.8/gems/actionpack-1.13.5/lib/action_controller/
benchmarking.rb:66:in `perform_action_without_rescue'
/usr/lib/ruby/1.8/benchmark.rb:293:in `measure'
/usr/lib/ruby/gems/1.8/gems/actionpack-1.13.5/lib/action_controller/
benchmarking.rb:66:in `perform_action_without_rescue'
/usr/lib/ruby/gems/1.8/gems/actionpack-1.13.5/lib/action_controller/
rescue.rb:83:in `perform_action'
/usr/lib/ruby/gems/1.8/gems/actionpack-1.13.5/lib/action_controller/
base.rb:435:in `send'
/usr/lib/ruby/gems/1.8/gems/actionpack-1.13.5/lib/action_controller/
base.rb:435:in `process_without_filters'
/usr/lib/ruby/gems/1.8/gems/actionpack-1.13.5/lib/action_controller/
filters.rb:684:in `process_without_session_management_support'
/usr/lib/ruby/gems/1.8/gems/actionpack-1.13.5/lib/action_controller/
session_management.rb:114:in `process'
/usr/lib/ruby/gems/1.8/gems/actionpack-1.13.5/lib/action_controller/
base.rb:334:in `process'
/usr/lib/ruby/gems/1.8/gems/rails-1.2.5/lib/dispatcher.rb:41:in `dispatch'
/usr/lib/ruby/gems/1.8/gems/rails-1.2.5/lib/webrick_server.rb:113:in
`handle_dispatch'
/usr/lib/ruby/gems/1.8/gems/rails-1.2.5/lib/webrick_server.rb:79:in
`service'
/usr/lib/ruby/1.8/webrick/httpserver.rb:104:in `service'
/usr/lib/ruby/1.8/webrick/httpserver.rb:65:in `run'
/usr/lib/ruby/1.8/webrick/server.rb:173:in `start_thread'
/usr/lib/ruby/1.8/webrick/server.rb:162:in `start'
/usr/lib/ruby/1.8/webrick/server.rb:162:in `start_thread'
/usr/lib/ruby/1.8/webrick/server.rb:95:in `start'
/usr/lib/ruby/1.8/webrick/server.rb:92:in `each'
/usr/lib/ruby/1.8/webrick/server.rb:92:in `start'
/usr/lib/ruby/1.8/webrick/server.rb:23:in `start'
/usr/lib/ruby/1.8/webrick/server.rb:82:in `start'
/usr/lib/ruby/gems/1.8/gems/rails-1.2.5/lib/webrick_server.rb:63:in
`dispatch'
/usr/lib/ruby/gems/1.8/gems/rails-1.2.5/lib/commands/servers/webrick.rb:59
/usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:27:in
`gem_original_require'
/usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:27:in `require'
/usr/lib/ruby/gems/1.8/gems/activesupport-1.4.4/lib/active_support/
dependencies.rb:495:in `require'
/usr/lib/ruby/gems/1.8/gems/activesupport-1.4.4/lib/active_support/
dependencies.rb:342:in `new_constants_in'
/usr/lib/ruby/gems/1.8/gems/activesupport-1.4.4/lib/active_support/
dependencies.rb:495:in `require'
/usr/lib/ruby/gems/1.8/gems/rails-1.2.5/lib/commands/server.rb:39
/usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:27:in
`gem_original_require'
/usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:27:in `require'
script/server:3

/usr/lib/ruby/gems/1.8/gems/activerecord-1.15.5/lib/active_record/
base.rb:1238:in `method_missing'
/usr/lib/ruby/gems/1.8/gems/activerecord-1.15.5/lib/active_record/
associations/has_many_through_association.rb:120:in `send'
/usr/lib/ruby/gems/1.8/gems/activerecord-1.15.5/lib/active_record/
associations/has_many_through_association.rb:120:in `method_missing'
/usr/lib/ruby/gems/1.8/gems/activerecord-1.15.5/lib/active_record/
base.rb:946:in `with_scope'
/usr/lib/ruby/gems/1.8/gems/activerecord-1.15.5/lib/active_record/
associations/has_many_through_association.rb:120:in `method_missing'
/home/thufir/Desktop/strawr/app/controllers/feeds_controller.rb:88:in
`add_some_tags'
/home/thufir/Desktop/strawr/app/controllers/feeds_controller.rb:87:in
`each'
/home/thufir/Desktop/strawr/app/controllers/feeds_controller.rb:87:in
`add_some_tags'
/usr/lib/ruby/gems/1.8/gems/actionpack-1.13.5/lib/action_controller/
base.rb:1101:in `send'
/usr/lib/ruby/gems/1.8/gems/actionpack-1.13.5/lib/action_controller/
base.rb:1101:in `perform_action_without_filters'
/usr/lib/ruby/gems/1.8/gems/actionpack-1.13.5/lib/action_controller/
filters.rb:696:in `call_filters'
/usr/lib/ruby/gems/1.8/gems/actionpack-1.13.5/lib/action_controller/
filters.rb:688:in `perform_action_without_benchmark'
/usr/lib/ruby/gems/1.8/gems/actionpack-1.13.5/lib/action_controller/
benchmarking.rb:66:in `perform_action_without_rescue'
/usr/lib/ruby/1.8/benchmark.rb:293:in `measure'
/usr/lib/ruby/gems/1.8/gems/actionpack-1.13.5/lib/action_controller/
benchmarking.rb:66:in `perform_action_without_rescue'
/usr/lib/ruby/gems/1.8/gems/actionpack-1.13.5/lib/action_controller/
rescue.rb:83:in `perform_action'
/usr/lib/ruby/gems/1.8/gems/actionpack-1.13.5/lib/action_controller/
base.rb:435:in `send'
/usr/lib/ruby/gems/1.8/gems/actionpack-1.13.5/lib/action_controller/
base.rb:435:in `process_without_filters'
/usr/lib/ruby/gems/1.8/gems/actionpack-1.13.5/lib/action_controller/
filters.rb:684:in `process_without_session_management_support'
/usr/lib/ruby/gems/1.8/gems/actionpack-1.13.5/lib/action_controller/
session_management.rb:114:in `process'
/usr/lib/ruby/gems/1.8/gems/actionpack-1.13.5/lib/action_controller/
base.rb:334:in `process'
/usr/lib/ruby/gems/1.8/gems/rails-1.2.5/lib/dispatcher.rb:41:in `dispatch'
/usr/lib/ruby/gems/1.8/gems/rails-1.2.5/lib/webrick_server.rb:113:in
`handle_dispatch'
/usr/lib/ruby/gems/1.8/gems/rails-1.2.5/lib/webrick_server.rb:79:in
`service'
/usr/lib/ruby/1.8/webrick/httpserver.rb:104:in `service'
/usr/lib/ruby/1.8/webrick/httpserver.rb:65:in `run'
/usr/lib/ruby/1.8/webrick/server.rb:173:in `start_thread'
/usr/lib/ruby/1.8/webrick/server.rb:162:in `start'
/usr/lib/ruby/1.8/webrick/server.rb:162:in `start_thread'
/usr/lib/ruby/1.8/webrick/server.rb:95:in `start'
/usr/lib/ruby/1.8/webrick/server.rb:92:in `each'
/usr/lib/ruby/1.8/webrick/server.rb:92:in `start'
/usr/lib/ruby/1.8/webrick/server.rb:23:in `start'
/usr/lib/ruby/1.8/webrick/server.rb:82:in `start'
/usr/lib/ruby/gems/1.8/gems/rails-1.2.5/lib/webrick_server.rb:63:in
`dispatch'
/usr/lib/ruby/gems/1.8/gems/rails-1.2.5/lib/commands/servers/webrick.rb:59
/usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:27:in
`gem_original_require'
/usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:27:in `require'
/usr/lib/ruby/gems/1.8/gems/activesupport-1.4.4/lib/active_support/
dependencies.rb:495:in `require'
/usr/lib/ruby/gems/1.8/gems/activesupport-1.4.4/lib/active_support/
dependencies.rb:342:in `new_constants_in'
/usr/lib/ruby/gems/1.8/gems/activesupport-1.4.4/lib/active_support/
dependencies.rb:495:in `require'
/usr/lib/ruby/gems/1.8/gems/rails-1.2.5/lib/commands/server.rb:39
/usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:27:in
`gem_original_require'
/usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:27:in `require'
script/server:3

Request

Parameters: {"tag1"=>{"checked"=>"0"}, "commit"=>"Save changes", "tag2"=>
{"checked"=>"0"}, "tag3"=>{"checked"=>"1"}, "id"=>"4"}

Show session dump