I have an index page that shows each of my Customers, and each row in
the display has an Update link which routes to my update method. That
simply does a find on the Customer id from the link and sets an
instance variable for the update view.
My update view renders a partial (same one used in the new/create) and
uses the following form:
<form id="customerEditForm" method="get" controller
="Customer"
action="edit">
I have code in the edit method to get all the updated fields and
persist the changes. However, when I click on the submit button, the
update action is executed, not the edit action.
I thought it may be something to do with Rails automatic routing, so I
renamed the update and edit actions to something very unusual ("edit"
was renamed to "sally", and "update" was renamed to
"frank") - same
results - I wanted sally, but got frank.
What am I doing wrong?
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"Ruby on Rails: Talk" group.
To post to this group, send email to
rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org
To unsubscribe from this group, send email to
rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org
For more options, visit this group at
http://groups.google.com/group/rubyonrails-talk?hl=en
-~----------~----~----~----~------~----~------~--~---
Usually the ''edit'' action is the one that creates the page with the form, and the form calls the ''update'' action. Usually there is no update view, the update action will usually redirect to the show page for that object or the index page for all objects of that type, or will re-render the edit page if the object couldn''t be saved (because it fails validations, most commonly). So, your links should go to the ''edit'' action, not to ''update''. The reason the form doesn''t work is you''re putting attributes in that it doesn''t know about, like controller: form tags just take an ''action'' attribute, which is the url to submit the form to. However, hard coding forms is bad. Use form_for to make your form, which should look like this: <%= form_for @your_object do |f|%> <% f.text_field :name %> ..etc <% end %> This will submit to the update action automatically -- Posted via http://www.ruby-forum.com/. --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
Thank you for the help, Max - I am making progress, but still have
an issue I cannot figure out.
The reason I was hard coding the form is because when I used the
form_for, I was getting unexpected results and errors (I cannot
remember now what they were). But now that I go back to using
form_for, I get an error like this:
Unknown action
No action responded to 3. Actions: create, edit, index, new, and
update
(In this case, 3 is the id of my Customer. If I select a different
customer, I get that id in the error message.)
Any ideas on that error?
Thanks again,
Steve
On Apr 14, 1:03 pm, Max Williams
<rails-mailing-l...-ARtvInVfO7ksV2N9l4h3zg@public.gmane.org>
wrote:> Usually the ''edit'' action is the one that creates the
page with the
> form, and the form calls the ''update'' action. Usually
there is no
> update view, the update action will usually redirect to the show page
> for that object or the index page for all objects of that type, or will
> re-render the edit page if the object couldn''t be saved (because
it
> fails validations, most commonly).
>
> So, your links should go to the ''edit'' action, not to
''update''.
>
> The reason the form doesn''t work is you''re putting
attributes in that it
> doesn''t know about, like controller: form tags just take an
''action''
> attribute, which is the url to submit the form to. However, hard coding
> forms is bad. Use form_for to make your form, which should look like
> this:
>
> <%= form_for @your_object do |f|%>
> <% f.text_field :name %>
> ..etc
> <% end %>
>
> This will submit to the update action automatically
>
> --
> Posted viahttp://www.ruby-forum.com/.
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"Ruby on Rails: Talk" group.
To post to this group, send email to
rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org
To unsubscribe from this group, send email to
rubyonrails-talk+unsubscribe@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/rubyonrails-talk?hl=en
-~----------~----~----~----~------~----~------~--~---