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