如何将JavaScripts放在Rails 3中除/ public / javascripts之外的任何地方?

时间:2011-01-25 02:34:33

标签: javascript ruby-on-rails-3

我有一个Rails 3视图(对于my_controller#show),它有很多JavaScript。

我想将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方式来做我想要的事情。

3 个答案:

答案 0 :(得分:2)

答案 1 :(得分:1)

您可以考虑为js文件创建路由。

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

并将您的js内容放在views/my_controller/show_js.js.erb

现在,您应该能够通过以下方式包含您的js文件:

javascript_include_tag "/my_controller/show_js.js"

答案 2 :(得分:0)

即将发布的Rails 3.1包含Sprockets gem,可提供资产管道功能,可以更灵活地放置JavaScript和其他资源。

也可以独立于Rails 3.1使用Sprockets。