开发者

Is there a way of executing embedded ruby in a javascript file in my /public/javascripts directory?

I have a form with an ever-growing amount of associated javascript. At present this javascript lives in my form view which is fine, but it's getting larger and starting to overwhelm the form making it difficult to work on the form.

I want to put this in a separate file in my /public/javascripts directory but a lot of the javascript is generated by embedded ruby. This embedded ruby is ignored and passed through to the browser if I just put the code here.

What is the best way (if any) of having this embedded ruby executed and the 开发者_开发百科javascript being generated in the same way as if it were in my view?


You can create dynamic erb templates for javascript, but they don't go in the public/javascripts directory.

I suggest you move the javascript into a partial. Create a file named _form_js.html.erb and put the content of your script tag there. Then <%= render :partial => 'form_js' %> from your view.

As a side note, it is likely that you would be better off using completely static javascript that identifies elements of the form by their class/id and reacts to this, rather than using custom javascript for each element.


You can create RJS templates and group your Javascript code in the RJS files. Refer: http://www.codyfauser.com/2005/11/20/rails-rjs-templates

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜