Как вернуть HTML непосредственно из контроллера Rails?
один из объектов моей модели имеет столбец "текст", который содержит полный HTML веб-страницы.
Я хотел бы написать действие контроллера, которое просто возвращает этот HTML непосредственно из контроллера, а не передает его через .шаблоны erb, как и остальные действия на контроллере.
моей первой мыслью было вытащить это действие в новый контроллер и сделать обычай .erb шаблон с пустым макетом, и просто <%= modelObject.htmlContent %> в шаблоне - но мне интересно если есть лучший способ сделать это в рельсы.
3 ответов:
в геймпаде
respond_toблок, вы можете использовать:render :text => @model_object.html_contentили:
render :inline => "<%= @model_object.html_content %>"так, что-то вроде:
def show @model_object = ModelObject.find(params[:id]) respond_to do |format| format.html { render :text => @model_object.html_content } end end
в последних рельсах (4.1.x), по крайней мере, это гораздо проще, чем принятый ответ:
def show render html: '<div>html goes here</div>'.html_safe end
его работы для меня
def show @model_object = ModelObject.find(params[:id]) respond_to do |format| format.html { render :inline => "<%== @model_object['html'] %>" } end end
Comments