我的一个模型对象有一个"文本"列,其中包含网页的完整HTML.
我想编写一个控制器动作,它只是直接从控制器返回这个HTML,而不是通过.erb模板传递它,就像控制器上的其他动作一样.
我的第一个想法是将此操作拉入一个新的控制器并使用空布局创建一个自定义.erb模板,并且只是<%= modelObject.htmlContent %>在模板中 - 但我想知道是否有更好的方法在Rails中执行此操作.
Dan*_*vin 91
在控制器respond_to块中,您可以使用:
render :text => @model_object.html_content
Run Code Online (Sandbox Code Playgroud)
要么:
render :inline => "<%= @model_object.html_content %>"
Run Code Online (Sandbox Code Playgroud)
所以,像:
def show
@model_object = ModelObject.find(params[:id])
respond_to do |format|
format.html { render :text => @model_object.html_content }
end
end
Run Code Online (Sandbox Code Playgroud)
Vin*_*Woo 58
在最新的Rails(4.1.x)中,至少,这比接受的答案简单得多:
def show
render html: '<div>html goes here</div>'.html_safe
end
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
62810 次 |
| 最近记录: |