Ruby on rails 3 如何更改javascripts模板文件夹的rails资产位置?

Ruby on rails 3 如何更改javascripts模板文件夹的rails资产位置?,ruby-on-rails-3,asset-pipeline,Ruby On Rails 3,Asset Pipeline,目前,为了需要一个javascript模板文件,我将该文件放在app/assets/javascripts/templates中,并在javascript文件中包含如下行: // = require templates/cool_thing.jst 然后我访问javascript中的模板,如下所示: JST['templates/cool_thing'] - Assets - javascripts - templates - stylesheets JST['cool_thi

目前,为了需要一个javascript模板文件,我将该文件放在
app/assets/javascripts/templates
中,并在javascript文件中包含如下行:

// = require templates/cool_thing.jst
然后我访问javascript中的模板,如下所示:

JST['templates/cool_thing']
- Assets
  - javascripts
  - templates
  - stylesheets
JST['cool_thing']
当然,这很好,但它需要将我的模板放在
assets/javascript
文件夹的子目录中。模板是我项目的一大部分,我真的希望它们有自己的空间

理想情况下,我希望rails 3资产文件夹的组织方式如下:

JST['templates/cool_thing']
- Assets
  - javascripts
  - templates
  - stylesheets
JST['cool_thing']
然后需要这样的模板:

// = require templates/cool_thing.jst
并在javascript中访问它们,如下所示:

JST['templates/cool_thing']
- Assets
  - javascripts
  - templates
  - stylesheets
JST['cool_thing']

这可能吗?如果可能,是如何实现的?

将其添加到您的application.rb配置中:

config.assets.paths << File.join(Rails.root, 'app', 'assets', 'templates') config.assets.path<< File.join(Rails.root、‘app’、‘assets’、‘templates’)
非常感谢。这就是我想要的。现在唯一的问题是需要模板意味着这样做:
/=requiretemplate\u name
。这意味着模板不能共享javascript文件的名称。您知道是否可以像您向我展示的那样使用资产/模板,同时要求模板文件具有
/=require template/template\u name
?您必须将它们放在名为“templates”的模板内的目录中:-)虽然恼人,但您的原始方法确实允许使用路径。唯一的另一个选择是在模板文件名前加上一些东西。是的,这会有点烦人,但会起作用。谢谢你,理查德!我想出了一个好办法——用一个方便的函数包装JST,在“templates/”前面加上前缀。轻松点!我提交了一个编辑以将其添加到您的答案中。Rails.root是一个路径名,因此您可以改为使用Rails.root.join('app','assets','templates')