Я знаю, что вы уже приняли ответ на этот вопрос, но я не думаю, что вам нужно создавать свой собственный преобразователь шаблонов.
Если я правильно понимаю ваш вопрос, вы пытаетесь «оформить» свои взгляды в зависимости от какого-либо аспекта текущего состояния приложения. Я сделал то же самое ранее, используя этот маленький метод контроллера:
prepend_view_path "app/views/#{current_app_code}"
Добавьте это в before_filter в вашем контроллере приложений, и все ваши контроллеры будут подчиняться:
class ApplicationController < ActionController::Base
before_filter :prepend_view_paths
def prepend_view_paths
prepend_view_path "app/views/#{current_app_code}"
end
end
Теперь rails будет сначала искать «app / views / app1 / users / index.html.erb», когда «/ users» запрашивается, если «app1» является текущим приложением.
Если он не находит его там, он возвращается к местоположению по умолчанию в "app / views / users / index.html.erb".
Надеюсь, это даст вам другую альтернативу.