user splash wrote:> Hi,
>
> I am trying to use form_remote_tag to update a record and then update
> the section of the page where id=''opertion_panel''. There
is a javascript
> validation that validates the input before the record is being updated.
> This validation works and the record was successfully updated. The
> problem is after the record is being updated, it didn''t update
> operation_panel. Instead it redirects to another page. Where did it went
> wrong? What should I do?
>
> Please help.
>
> Thanks.
>
>
> ............view...................
>
> <% form_remote_tag(:url => {:action => :update_item}, :update
=>
> "operation_panel", :before=>"return validateForm(this);
return false;")
> do %>
> ....
> <% end %>
> ....................................
>
> .........controller.................
> def item
> @item=Item.find(params[:id])
> session[:id]=@item
> end
>
> def update_item
> @item=Item.find(session[:id])
>
> if @item.update_attributes(params[:item])
> session[:id]=nil
> redirect_to :action => ''index'', :id => @item.id
> flash[:notice] = "#{@item.name} was successfully updated."
> else
> redirect_to :action=>''index'', :id=> @item.id
> flash[:notice] = "#{@item.name} was NOT successfully
updated."
> end
> end
> ....................................
In your update_item method, you do a redirection (redirect_to) on both
cases, so it''s seems logic that you get that redirection and nothing
get
updated in your page.
To handle both normal and ajax requests try to do something like this:
def update_item
@item=Item.find(session[:id])
respond_to do |format|
if @item.update_attributes(params[:item])
session[:id]=nil
format.html {
flash[:notice] = "#{@item.name} was successfully updated."
redirect_to :action => ''index'', :id => @item.id
}
format.js {
render :text => "the information you want to send back to your
page"
}
else
format.html {
flash[:notice] = "#{@item.name} was NOT successfully updated."
redirect_to :action=>''index'', :id=> @item.id
}
format.js {
render :text => "the information you want to send back to your
page"
}
end
end
end
The content of format.html will be executed when the request comes from
a regular post (if javascript is turned off by your client browser) and
format.js for ajax call.
Hope this helps.
Guillaume
http://www.nomadsper.com
--
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
-~----------~----~----~----~------~----~------~--~---