2012-06-05 2 views
1

У меня есть приложение, которое должно поддерживать небольшой набор доверенных пользователей, загружающих новые шаблоны. Я буду хранить их в базе данных или на S3. Мой вопрос: как я могу сказать контроллеру, чтобы отобразить данный шаблон? Конечно, я мог бы сделать это с помощью ручного ERB вызова:Rails: как использовать шаблон где-то, кроме файловой системы?

class MyController < ApplicationController 
    def foo 
    template_source = find_template(params[:name]) 
    template = Erubis::Eruby.new(template_source) 
    render :text => template.result({ :some => @data }) 
    end 
end 

Но тогда я теряю вещи, как хелперов и автоматического копирования переменных экземпляра.

+2

есть большой раздел обработки в найденной 'Крафтинг Rails applications' – apneadiving

+0

это (крафт рельсы приложения, например, на шаблонах) шаблона действительно почти идеально подходит для ваших нужд –

+0

Я обязательно прочитаю. Благодаря! –

ответ

1

Вы могли бы сделать это с помощью визуализации: рядного

render :inline => find_template(params[:name]) 
+0

Мне нравится предложение ActionView :: Resolver, которое некоторые сделали в комментариях, но поскольку это единственный фактический ответ, и он работает, я принимаю его. –