rails form_with form_tag form_for ruby-on-rails

ruby on rails - form_with - ¿Cómo devolver HTML directamente desde un controlador Rails?



helpers rails (3)

En los últimos Rails (4.1.x), al menos, esto es mucho más simple que la respuesta aceptada:

def show render html: ''<div>html goes here</div>''.html_safe end

Uno de mis objetos modelo tiene una columna de ''texto'' que contiene el HTML completo de una página web.

Me gustaría escribir una acción de controlador que simplemente devuelva este HTML directamente desde el controlador en lugar de pasarlo a través de las plantillas .erb como el resto de las acciones en el controlador.

Lo primero que pensé fue incluir esta acción en un nuevo controlador y crear una plantilla .erb personalizada con un diseño vacío, y solo <%= modelObject.htmlContent %> en la plantilla, pero me pregunté si habría una forma mejor de hacerlo. en Rails.


En su controlador respond_to bloquear, puede usar:

render :text => @model_object.html_content

o:

render :inline => "<%= @model_object.html_content %>"

Entonces, algo como:

def show @model_object = ModelObject.find(params[:id]) respond_to do |format| format.html { render :text => @model_object.html_content } end end


Su trabajo para mí

def show @model_object = ModelObject.find(params[:id]) respond_to do |format| format.html { render :inline => "<%== @model_object[''html''] %>" } end end