2011-01-25 11 views
0

我有一個Rails 3視圖(for my_controller#show),它有很多的JavaScript。如何將JavaScript放在Rails 3中的/ public/javascripts之外的任何地方?

我想將該JavaScript移至單獨的my_show.js文件,然後使用Rails的javascript_include_tag方法包含該文件。如果我把my_show.js放在/public/javascripts目錄中,這個方法可行。但我更願意將文件放在與其關聯的視圖相同的目錄中。

是否可以配置rails,以便我可以使用javascript_include_tag包含/public/javascripts以外的文件?

我現在的解決方案是創建一個名爲_my_show.html.haml的部分。在這個文件中,我把我的JavaScript代碼。然後我將這個文件加入render

我想知道是否有一個首選的Rails 3方法來做我想做的事。

回答

1

你可以考慮爲js文件創建一個路由。

get '/my_controller/show_js.js' => 'my_controller#show_js' 

,放在views/my_controller/show_js.js.erb

您的js的內容現在,你應該能夠通過包括您的js文件:

javascript_include_tag "/my_controller/show_js.js" 
+0

我想這會工作,我只是最終將我的所有文件放在/ public/javascripts下面的子目錄爲組織。至少這可以讓我有簡單的.js文件(不是.js.erb文件),我不必爲每個文件添加路由。我想有一個更聰明的方法來做到這一點,但我的解決方案現在工作。 – jwfearn 2011-01-31 23:56:24

0

即將Rails 3.1包括Sprockets gem到提供資產管道功能,爲JavaScript和其他資產的佈局提供更大的靈活性。

也可以使用獨立於Rails 3.1的Sprockets。

相關問題