2016-02-21 2 views
0

В настоящее время я разрабатываю приложение, в котором пользователи могут выбирать тему и публиковать свою страницу.Использование конвейеров/активов с несколькими каталогами ресурсов

Для того, чтобы достичь этого, я организовал мой Ruby, 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 
    > .... 

При использовании встроенных помощников, таких как stylesheet_link_tag и image_tag в/приложение/Темы/theme_1/layout.html.erb, я хочу, чтобы эти помощники использовали активы, расположенные в их собственном каталоге.

Например, при использовании следующего кода в /app/themes/theme_1/layout.html.erb:

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

Я хочу показать изображение находится в папке/приложения/темы/theme_1/активы/images/image.jpg, а не изображение, расположенное в /app/views/assets/images/image.jpg. То же самое касается использования stylesheet_link_tag и style.scss.

Так что, в основном, я хочу знать, есть ли, например, способ определить каталог, в котором будут встроены встроенные помощники, такие как stylesheet_link_tag и image_tag, потому что на данный момент у меня возникают конфликты при связывании с активами, которые поделиться своим именем с другими активами, расположенными в разных папках.

Помощь приветствуется, другие идеи, как я мог бы это сделать, очень приветствуются.

ответ

0

Я хочу показать изображение, расположенное на /app/themes/theme_1/assets/images/image.jpg, а не изображения, расположенного по адресу /app/views/assets/images/image.jpg.

Я считаю, что более традиционный подход, для этого было бы сделать папку (ы) внутри app/assets/images называется themes/theme_1, а затем положить ваши тематические изображения там.

Теперь вы можете использовать image_tag как это

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

Спасибо за ваш ответ. Теперь, когда это исправляет мою проблему, мне все еще интересно, есть ли решение, в котором я могу сохранить тег-ресурсы, содержащиеся в их собственном каталоге, вместо создания новых каталогов во всех подкаталогах внутри 'app/assets /' для каждого и каждая тема. Я должен признать, что ваш пример, вероятно, более обычный способ, и я знаю, что придерживаться конвенций является предпочтительным способом делать вещи с Ruby on Rails, но в моем случае я могу придумать множество преимуществ с точки зрения гибкости, если я смогу сохранить активы моих тем отделены от остальной части моего приложения. – guy1997

Смежные вопросы