How to pass a javascript variable into a erb code in a js view? How to pass a javascript variable into a erb code in a js view? ruby-on-rails ruby-on-rails

How to pass a javascript variable into a erb code in a js view?


As far as i know there is no way to do it directly and the reason is fairly simple too, html is executed at the server side and javascript is a client side language which means its executed in your local browser, thats why if you even try to pass a variable between the two you'll have to make a request to the server, However this problem is tackled by calling an AJAX request, this AJAX request does the same thing as sending a new request to the server however it does that without refreshing or reloading the page to it gives the users the illusion that no request was made.

a guy asks a similar question Here

and you can learn more about AJAX Here on MDN:


Yes you can pass the value by using jquery;

<%=f.text_field :email ,:id=>"email_field" %><script type="text/javascript">   var my_email= "my@email.com"   $(document).ready(function(){        $("#email_field").val(my_email);   });</script>


Simple answer is you can't. Partials are expanded at server side, and JavaScript variables are set later at client side. You could make i (as a variable name) a parameter of the partial and use it there.

render :partial => 'xx', :locals => { :variable => 'i' }

And in partial

alert(<%= variable %>);