Как вернуть HTML непосредственно из контроллера Rails?



один из объектов моей модели имеет столбец "текст", который содержит полный HTML веб-страницы.



Я хотел бы написать действие контроллера, которое просто возвращает этот HTML непосредственно из контроллера, а не передает его через .шаблоны erb, как и остальные действия на контроллере.



моей первой мыслью было вытащить это действие в новый контроллер и сделать обычай .erb шаблон с пустым макетом, и просто <%= modelObject.htmlContent %> в шаблоне - но мне интересно если есть лучший способ сделать это в рельсы.

491   3  

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

    Ничего не найдено.