You will want to use remote_form_for instead of form_for.
A bit of unasked-for advice:
Write your tests or specs and run them all the time. Make sure
everything works without the ajax. Tail your logs and watch the
actions invoked and parameters passed.
Hope this helps.
On Jan 20, 2009, at 1:15 AM, Shilo Ayalon wrote:
>
> I''m trying to build a form to create or update a model using
remote
> call. When I submit the form, I see that the changes aren''t
applied. I
> started the server with --debugger and noticed the params hash
doesn''t
> receive the updates. My code for update form is this:
>
> # /app/views/vendors/_vendor.html.erb
> # This is in the partial b/c there''s also an option to render a
> # read only view as a table row with vendor_nnn as its id
>
> <tr id="active_vendor">
> <% if edit_mode -%>
> <% form_for @vendor, :vendor, { :action =>
''update'',
> :id => @vendor } do |f| -%>
> <%= f.text_field :name %>
> <%= f.text_field :location %>
> <%= link_to_remote ''save'', :url => { :action
=> ''update'',
> :id => @vendor } %>
> <% end -%>
> <% end -%>
> </tr>
>
> # vendors_controller.rb
>
> def update
> @vendor = Vendor.find(params[:id])
> if @vendor.update_attributes(params[:vendor])
> flash[:notice] = "Vendor <b>#{@vendor.name}</b> was
successfully
> updated."
> respond_to do |format|
> format.html { redirect_to vendors_path }
> format.js
> end
> end
> end
>
> # update.js.rjs -- this is just to
> id = params[:id]
>
> # this puts
> page.replace "vendor_#{id}",
> :partial => ''vendor'',
> :object => Vendor.find(id),
> :locals => { :edit_mode => false }
>
> page.replace_html ''flasher'', params[:vendor] unless
> params[:vendor].blank?
> page.remove "active_vendor"
>
>
> When submitting the form it just renders the previous data, without
> the
> changes.
> --
> 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
-~----------~----~----~----~------~----~------~--~---