undefined method error from atom builder

I have a simple controller that takes a request, looks up some data
and then returns the results as either HTML or Atom. The HTML response
works fine, but the Atom Builder is blowing up with an undefined
method error that I can't figure out. It seems to be failing when the
ActiveRecord instance is passed to the 'entry' method and it tries to
build the URL via the 'polymorphic_url' method. There is no
'order_url' method, field or database column, so I'm at a loss.

Error message - undefined method `order_url' for #<ActionView::Base:
0x25e3560>
Code snippet that's failing (line 7) -
4:
5: for order in @orders
6:
7: feed.entry(order) do |entry|
8:
Stack trace of failure -
/Library/Ruby/Gems/1.8/gems/actionpack-2.3.2/lib/action_controller/
polymorphic_routes.rb:109:in `__send__'
/Library/Ruby/Gems/1.8/gems/actionpack-2.3.2/lib/action_controller/
polymorphic_routes.rb:109:in `polymorphic_url'
/Library/Ruby/Gems/1.8/gems/actionpack-2.3.2/lib/action_view/helpers/
atom_feed_helper.rb:189:in `entry'
/Library/Ruby/Gems/1.8/gems/builder-2.1.2/lib/builder/xmlbase.rb:
134:in `call'
/Library/Ruby/Gems/1.8/gems/builder-2.1.2/lib/builder/xmlbase.rb:
134:in `_nested_structures'
/Library/Ruby/Gems/1.8/gems/builder-2.1.2/lib/builder/xmlbase.rb:58:in
`method_missing'
/Library/Ruby/Gems/1.8/gems/actionpack-2.3.2/lib/action_view/helpers/
atom_feed_helper.rb:178:in `entry'

I'm running Ruby 1.8.6 on Mac OS X 10.5.7. Thanks.

I have a simple controller that takes a request, looks up some data
and then returns the results as either HTML or Atom. The HTML response
works fine, but the Atom Builder is blowing up with an undefined
method error that I can't figure out. It seems to be failing when the
ActiveRecord instance is passed to the 'entry' method and it tries to
build the URL via the 'polymorphic_url' method. There is no
'order_url' method, field or database column, so I'm at a loss.

You've got an instance of order, so various bits of rails assume that
(by default) to link to that particular object the order_url helper
should be called. Usually you get this for free when you write
map.resources :orders in your routes file (although you don't have to
create the named route via resources)

Fred

Thanks. I was missing the map.resources to that model. I didn't add a
helper and it still seems to work. In any case, this was a "manually"
created model, instead of using the Rails script, so that's why it was
missing for me.

Thanks again.

Nathan Beyer wrote:
[...]

In any case, this was a "manually"
created model, instead of using the Rails script, so that's why it was
missing for me.

No. script/generate model doesn't generate map.resources statements.
You always have to do those yourself if you want them.

Best,