Ruby on Rails: How to Render Partial in a view via Jquery
Asked Answered
A

3

9

I have a 'project' form as a partial. I'm trying to use jquery to render the partial when user clicks a button:

$('.projects').append("<%= render partial: 'projects/project') %>").html_safe

But using the above code is literally rendering "<%= render partial: 'projects/project') %>" on the page instead of the actual partial.

Ameliaamelie answered 4/5, 2015 at 3:4 Comment(2)
I think your javascript file doesn't have the erb extension in it, if it is then rename from file.js to file.js.erbCleavland
what's the name of this file anyways? cause it looks like js but you added .html_safe which is ruby, and you said form partial, so idk.Cleavland
D
6

I believe renaming your file extension from xxx.js to xxx.js.erb might solve your problem.

Deglutition answered 4/5, 2015 at 4:34 Comment(1)
I think Bernie is correct. If the file ends in erb, then rails will render the view. If not, then it just treats it as any other static file.Mascagni
A
4

Try this:

$('#projects').html('<%= escape_javascript render 'projects/project' %>');

Note: As Bernie Chiu suggested you need to change file extension from xxx.js to xxx.js.erb

Amelina answered 4/5, 2015 at 4:52 Comment(0)
O
2

Try:

$('.projects').append("<%= j render partial: 'projects/project') %>");

j is the alias for escape_javascript.

See documentation for escape_javascript helper.

Oriente answered 4/5, 2015 at 3:25 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.