How to do render partial on jquery ajax success method with rails 3

I’m using rails 3.2.1 with jquery for an ajax call.

My juqery code is :

jQuery.ajax({
url: “/org_pages”,
data: ‘org_id=’+ org_id,
type: “POST”,
success: function(result){
jQuery("#image_center").html("<%=
escape_javascript(render(:partial => ‘pages/top_link’)) %>");
},
error: function(){
alert(‘Error occured’);
}
});

My problem is on the web page the output is showing this :

<%= render :partial => ‘pages/top_link’, :collection=>@pages %>

How it should display my render partial page. :frowning:

On Aug 7, 2012, at 7:03 AM, Manish N. wrote:

escape_javascript(render(:partial => ‘pages/top_link’)) %>");
How it should display my render partial page. :frowning:
What is the file-extension of the script you posted? Does it include
.erb as the last segment? If not, then the erb code won’t be evaluated
at all.

Walter

That is a .js file.

You need to know the flow first

if u write .erb file it will execute by interpreter and only html
response
will served to client side browser .

But you are trying to execute the ruby code from javascript which will
not
possible. so it is considering as text and displaying that.

anyway request is going to server, so my advise is run the required ruby
code on server and the response html will be served to you

for that you need to create the request_getting_method.js.erb on server
and
place your code on that like this

$(“#image_center”).html(“<%=escape_javascript(render(:partial =>
‘pages/top_link’)) %>”);

so that will execute on server and gives responce to client and the
responce will replace by image_cente id element html content.

On 7 August 2012 19:09, Walter Lee D. [email protected] wrote:

           type: "POST",


-------------Regards---------------
G SubbaRao
Cell:08970668850
E-Mail:[email protected]

On Aug 7, 2012, at 9:43 AM, Manish N. wrote:

That is a .js file.

And so, if you want it to also include interpolation, using erb syntax,
you have to tack .erb to the end of the filename, and you have to put
the file in a location where it will be interpreted (hint: not in
/public/javascripts).

But step back and think if there’s another way to write your JavaScript
so you don’t need that interpolation. Can you write that variable data
into the partial for /org_pages? The reason you would want to do that is
so that the JavaScript can be compressed and minified along with all the
other static assets. The moment you start generating your JavaScript
dynamically, you force the browser to re-load it from scratch each page
load, along with all the HTML. Your Ajax call is already creating a
dynamic snippet of HTML – what’s a little more HTML there?

Walter