routes question

Hello,

I'm stucked in a completely newbie question ...

I have one controller scann

all the default methods work: index, new, save, ...

I added a new one called query, and when I try to call it

http://127.0.0.1:3000/scann/query

I'm getting an error, and the method who is trapping is 'show'

ActiveRecord::RecordNotFound in ScannsController#show

Couldn't find Scann with ID=query RAILS_ROOT: /Users/montx/Documents/Ruby/scanner

Application Trace | Framework Trace | Full Trace /Users/montx/.gem/ruby/1.8/gems/activerecord-2.2.2/lib/active_record/base.rb:1528:in `find_one' /Users/montx/.gem/ruby/1.8/gems/activerecord-2.2.2/lib/active_record/base.rb:1511:in `find_from_ids' /Users/montx/.gem/ruby/1.8/gems/activerecord-2.2.2/lib/active_record/base.rb:590:in `find' app/controllers/scanns_controller.rb:21:in `show' app/controllers/application.rb:42:in `login_required' ...

If for example I put an undefined action:

http://127.0.0.1:3000/scann/q5645343 is also trying to execute the 'show' action ...

wich route I should add to my routes.rb to allow this action ?

I read mor than twice the Rails Routing from the Outside In and made some attempts but ...

:frowning:

thanks,

r.

You'll need to add a new route for your custom action. Assuming you have map.resources :scanns in your routes.rb

If the action you need will work on a collection:

map.resources :scanns, :collection => { :query => :get }

or if just on a member:

map.resources scanns, :member => { :query => :get }

You'll need to change :get to whatever method you need.

Can you post the result of rake routes ?

Hi --

David

I ran the ruby script/about command and got

About your application's environment Ruby version 1.8.6 (i686-darwin9.5.0) RubyGems version 1.3.1 Rails version 2.2.2 Active Record version 2.2.2 Action Pack version 2.2.2 Active Resource version 2.2.2 Action Mailer version 2.2.2 Active Support version 2.2.2 Application root /Users/dc72/Sites/aa-notary/rapps/aanotarysys Environment development Database adapter sqlite3 Database schema version 20090108132513

-David

David A. Black wrote:

David,

Your link_to has a cancel_appointment_path but your routes are all cancel_closing variants. Do you have any routes in place for the appointments_controller?

Rick

Rick,

That was my mistake. Appointment object was recently split into two objects...and the closing is the one we need to have cancelable now. I copied my link to from an old view that's not actually being used (my mistake...sorry for the confusion).

So..the link I'm actually trying to get working is:

<%= link_to 'Cancel', cancel_closing_path(closing), :confirm => 'Are you sure?' %>

So

Rick wrote: