Unknown action - incorrect route


#1

I have a form called edit.rhtml that lets you edit attributes of an
Event object.
In the file I have the following code:
<% form_tag :action => ‘update’, :id => @event do %>
<%= render :partial => ‘form’ %>
<%= submit_tag_or_cancel ‘Save Changes’ %>
<% end %>

The ‘update’ method in the controller is called to update attributes in
the database. I understand this is my action.
But when I hit the “submit_tag_or_cancel” to save the changes, I get
routed to:

http://localhost:3000/events/8

In the browser I get Unknown Action; No action responded to 8

but I want to get routed back to the list of events:

http://localhost:3000/events

My routes.rb configuration is as follows:
map.edit_event ‘events/edit/:id’, :controller => ‘events’, :action =>
‘edit’

I’ve tried changing the <% form_tag code around without success. Thank
you very much for your help!


#2

Jason L. wrote:

But when I hit the “submit_tag_or_cancel” to save the changes, I get
My routes.rb configuration is as follows:
map.edit_event ‘events/edit/:id’, :controller => ‘events’, :action =>
‘edit’

I’ve tried changing the <% form_tag code around without success. Thank
you very much for your help!

Posted via http://www.ruby-forum.com/.

It’s probably defaulting to the default route:

map.connect ‘:controller/:action/:id’

You’ll need to specify a route for the :update action, but I think
you’re better off using RESTful routes instead:

map.resources :events


#3

map.resources :events

OK. I’m still learning about RESTful. I’ll study up on that. Thank you!