I have a JavaScript file to use with a view. There needs to be Ruby code in it, and I need to do render
in Ruby, so I understand that I can't put the JavaScript file in the asset pipeline. I can put it in the same view folder as the .html.erb
file.
How do I include the JavaScript file, or use that JavaScript file for that view file? I tried javascript_include_tag
in my view (that uses the asset pipeline apparently), using script src="myfile.js"
for the myfile.js.erb
file (but it can't find myfile.js
), and names my js.erb
file (users.js.erb
) the same as my .html.erb
file (users.html.erb
), but all to no avail.
javascript_include_tag won't work js.erb declared in the view folder itself. There are three different ways you can have the javascript.
1] Write the code in the view, i.e., in the html.erb itself.
2] Create js file in public/javascripts folder and include it using javascript_include_tag.
3] In case you want to make the request as Ajax:
:remote => true
.In the called action, use code as follows:
def action
respond_to do |format|
format.js
end
end
you can do this by
render :partial => "myfile"
you have to keep your file in controller's view directory with name _myfile.js.erb
Now you can write your own code (js,ruby) here and probably can separate out js with javascript_include_tag to avail asset pipline
This file will be first rendered by erb engine and then as javascript.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With