Ajax

Sir can u guide me in implementation of Ajax calls in Ruby and Rails? wen i m implementing a new page it gives th following op:

"try { Element.hide("add_answer_link_for_post_-613772418"); Element.update("new_answer_form_for_post_-613772418", "<form action=\"/answers\" method=\"post\" onsubmit=\"new Ajax.Request('/answers', {asynchronous:true, evalScripts:true, parameters:Form.serialize(this)}); return false;\">\n<fieldset>\n <legend>New Answer</legend>\n <textarea cols=\"40\" id=\"answer_ans_string\" name=\"answer[ans_string]\" rows=\"10\"></textarea>\n <input name=\"commit\" type=\"submit\" value=\"Create\" />\n</fieldset>\n</form>\n\n"); } catch (e) { alert('RJS error:\n\n' + e.toString()); alert('Element.hide(\"add_answer_link_for_post_-613772418\");\nElement.update(\"new_answer_form_for_post_-613772418\", \"<form action=\\\"/answers\\\" method=\\\"post\\\" onsubmit=\\\"new Ajax.Request(\'/answers\', {asynchronous:true, evalScripts:true, parameters:Form.serialize(this)}); return false;\\\">\\n<fieldset>\\n <legend>New Answer</legend>\\n <textarea cols=\\\"40\\\" id=\\\"answer_ans_string\\\" name=\\\"answer[ans_string]\\\" rows=\\\"10\\\"></textarea>\\n <input name=\\\"commit\\\" type=\\\"submit\\\" value=\\\"Create\\\" />\\n</fieldset>\\n</form>\\n\\n\");'); throw e }"

I want to eliminate this problem wen i m implementing ajax requests.. Please help..

ALso m unable to understand the follwing code:

  <div id="comments_for_post_<%= post.id %>">     <%= render :partial => "comments/comment", :collection => post.comments %>   </div>   <% if logged_in? %>   <div id="add_comment_link_for_post_<%= post.id %>">     <%= link_to_remote "Add a comment",                        :url => new_comment_path(post.blog, post),                        :method => :get %>   </div>   <div id="new_comment_form_for_post_<%= post.id %>">   </div>   <% end %> </div>

def new   @comment = Comment.new   respond_to do |format|     format.js do       render :update do |page|         page.hide "add_comment_link_for_post_#{@post.id}"         page.replace_html "new_comment_form_for_post_#{@post.id}",                           :partial => "new"       end     end   end end

please can anyone guide me wat does "add_comment_ink_for_post_#{@post.id}" do???

Hi Manish Belsare

  <% if logged_in? %>   <div id="add_comment_link_for_post_<%= post.id %>">     <%= link_to_remote "Add a comment",                        :url => new_comment_path(post.blog, post),                        :method => :get %>   </div>

please can anyone guide me wat does "add_comment_ink_for_post_#{@post.id}" do???

    From your view code add_comment_ink_for_post_#{@post.id} is some div For example of @post.id=2 Then that div will be add_comment_ink_for_post_2

page.hide "add_comment_link_for_post_#{@post.id}"

What this does is hide a div element As an example it hides the div add_comment_ink_for_post_2

Sijo

Sir, Can u please help me in the problem that is present at the top?? I dont know why ruby isnt supporting AJAX calls??? wat should i do 2 eliminate the problem...It is urgent...! Please help..

You say that you get this when you have implemented a new page, but you have not shown the code of your page. It is therefore difficult for anyone to suggest what is wrong.

Colin

def new   @answer = Answer.new   respond_to do |format|     format.js do       render :update do |page|         page.hide "add_answer_link_for_post_#{@post.id}"         page.replace_html "new_answer_form_for_post_#{@post.id}",                           :partial => "new"       end     end   end end

_new.html.erb: <% remote_form_for(:answer, :url => answers_path) do |form| %> <fieldset>   <legend>New Answer</legend>   <%= form.text_area :body, :rows => 10, :cols => 40 %>   <%= submit_tag "Create" %> </fieldset> <% end %>

def create   @answer = Answer.new(params[:answer])   @answer.user = User.find(session[:user_id])   @answer.post = @post   respond_to do |format|     if @answer.duplicate? or @post.answers << @answer       format.js do         render :update do |page|            page.replace_html "answers_for_post_#{@post.id}",                              :partial => "answers/answer",                              :collection => @post.answers            page.show "add_answer_link_for_post_#{@post.id}"            page.hide "new_answer_form_for_post_#{@post.id}"         end       end     else       format.js { render :nothing => true }     end   end end

_answer.html.erb <div id="answer_<%= answer.id %>" class="answer">   <hr noshade />   <% if logged_in? and answer.authorized?(User.find(session[:user_id])) %>   <span class="edit_link" style="float: right">   <%= link_to_remote "(delete)",           :url => answer_path(answer.post.blog, answer.post, answer),           :method => :delete,           :confirm => 'Are you sure?' %>   </span>   <% end %>

ABove is the code that uses Ajax but fails wen run..y?