¿Cómo devolver HTML directamente desde un controlador Rails?

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 rest de las acciones en el controlador.

Mi primer pensamiento fue llevar esta acción a un nuevo controlador y crear una plantilla .erb personalizada con un diseño vacío, y solo en la plantilla, pero me pregunté si habría una mejor manera de hacerlo. en Rails.

En su controlador respond_to block, 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 

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

 def show render html: '
html goes here
'.html_safe end

Funciona para mi

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