Search code examples
javascriptjqueryrubyruby-on-rails-4ujs

How to use Ruby code inside js.erb?


I'm able to render partial inside a modal using escape_javascript in js.erb file code:

$("body").append("<%= escape_javascript(render partial: 'example_partial') %>");
$('#my_modal').modal('show');

However, I can't seem to get results for:

console.log(<%= @error %>)

Solution

  • ERB will output a plain string. JS needs inverted commas around a string for it to be recognized. You have missed them on your console.log() statement.

    Change it to:

    console.log('<%= @error %>');
    

    You may also find the raw helper useful. This will call .to_s and .html_safe on any erb output:

    console.log('<%= raw @error %>');
    

    Read more about html_safe here.