Ruby on rails 使用具有多个资产目录的链轮/资产管道

Ruby on rails 使用具有多个资产目录的链轮/资产管道,ruby-on-rails,asset-pipeline,sprockets,Ruby On Rails,Asset Pipeline,Sprockets,我目前正在设计一个应用程序,用户可以在其中选择一个主题并发布他们的页面 为了实现这一点,我以以下方式组织了我的Ruby on Rails项目: > app > controllers > helpers > mailers > models > views > assets > stylesheets - style.scss > images - image.jpg &

我目前正在设计一个应用程序,用户可以在其中选择一个主题并发布他们的页面

为了实现这一点,我以以下方式组织了我的Ruby on Rails项目:

> app
  > controllers
  > helpers
  > mailers
  > models
  > views
  > assets
    > stylesheets
      - style.scss
    > images
      - image.jpg
    > javascripts
  > themes
    > theme_1
      - layout.html.erb
      > assets
        > stylesheets
          - style.scss
        > images
          - image.jpg
        > javascripts
    > theme_2
    > ....
在/app/themes/theme\u 1/layout.html.erb中使用内置帮助程序(如
stylesheet\u link\u tag
image\u tag
)时,我希望这些帮助程序使用位于自己目录中的资源

例如,在/app/themes/theme_1/layout.html.erb中使用以下代码时:

<%= image_tag('image.jpg') %> 

我想显示位于/app/themes/theme_1/assets/images/image.jpg的图像,而不是位于/app/views/assets/images/image.jpg的图像。使用
stylesheet\u link\u标记
和style.scss也是如此

因此,基本上,我想知道是否有一种方法可以定义一个目录,其中内置的帮助程序(如
stylesheet\u link\u tag
image\u tag
)将在其中查找,因为此时,当链接到与位于不同文件夹中的其他资产共享其文件名的资产时,我会遇到冲突

非常感谢您的帮助,我也非常欢迎您提出其他建议

我想显示位于/app/themes/theme_1/assets/images/image.jpg的图像,而不是位于/app/views/assets/images/image.jpg的图像

我相信更传统的方法是在
app/assets/images
中创建名为
themes/theme_1
的文件夹,然后将主题图像放在其中

现在你可以像这样使用你的
image\u标签了

= image_tag('/themes/theme_1/image.jpg')

谢谢你的回答。现在,虽然这确实解决了我的问题,但我仍然想知道是否有一种解决方案,可以将主题资产保存在它们自己的目录中,而不是为每个主题在
app/assets/
中的所有子目录中创建新目录。我必须承认,您的示例可能是更传统的方式,我知道坚持约定是使用Ruby on Rails做事情的首选方式,但在我的情况下,如果我能够将主题的资产与应用程序的其余部分分离,我可以想到在灵活性方面的许多优势。