Programming Forums

Programming Forums (http://www.programmingforums.org/forumindex.php)
-   Ruby (http://www.programmingforums.org/forum63.html)
-   -   controllers & AJAX (http://www.programmingforums.org/showthread.php?t=11663)

matthewvb Oct 22nd, 2006 1:06 PM

controllers & AJAX
 
I have a controller that renders a partial which looks like this: (traditional rendering)

:

render :partial => "feed", :object => @feed

question is: how can I call this method from the view and implement some cool AJAX where I get a loading spinner while the text is rendering then loads all at once?

I can do it with a form with this code:

:

<%= form_remote_tag :url => {:action => 'view'},
  :update => 'feed', :complete => visual_effect(:blind_down, 'feed'),
  :before => %(Element.show('spinner')),
  :success => %(Element.hide('spinner')) %>


but i can't figure out how to implement the same type of comments when just calling the controller instead of having to use a form or a link (link_to_remote) in order access the content.

i'd be open to doing away with the controller and just having all the code in the view area, but i'm still looking to have the AJAX before/success elements implemented.

Thanks in advance for the help!
-matthew

matthewvb Oct 23rd, 2006 2:02 PM

I have it figured out. I pulled the javascript from the source and put that in a body onload tag.

thanks all!

dark_omen Aug 30th, 2007 1:47 PM

I did something with ajax on my rails site (http://boozrs.com) . The thing is I never could get the form_remote_tag to work properly with :update => 'someId', but something like this does work:
In view:
:

<%= image_tag('/images/indicator.gif', :border => 0, :id => 'posting', :style=> 'display: none;') %>
                <% form_remote_tag(:url => {:action => 'comment', :user_id => session[:user_id]}, :before => "Element.show('posting')", :success => "Element.hide('posting')") do %>
                        <p><label>Comment</label><br/>
                        <textarea name="comment" rows="10" cols="50"></textarea></p>
                        <input type="submit" value="Add A Comment" />
                <% end %>

And the controller:
:

def comment
  #do stuff here specific to what you want to do
  render :update do |page|
    page.replace_html  'comments', :partial => 'comments' #you can pass objects and other stuff here, if you want
  end
end



All times are GMT -5. The time now is 11:27 AM.

Powered by vBulletin® Version 3.7.0, Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Copyright ©2007 DaniWeb® LLC