(rails)从DB获取并呈现为HTML

时间:2009-04-28 20:46:45

标签: html ruby-on-rails ruby

我正在为我的Web Dev类构建一个网站,但我仍然坚持渲染HTML。我希望能够使用一个简单的表单(我现在几乎就是这个控制器的脚手架,我尝试将content_type粘贴到我的控制器中,但没有进展。)提交文本并将其呈现为HTML。这个想法是,因为这个类要求从书中复制一堆废话作为HTML的示例和参考,也许我可以像博客文章一样提供它们。 (所有在同一页面上,使用相同的布局。唯一改变的是博客列表和数据(控制器有问题)列表下面的内容div。

因此,简而言之,我的问题是:如何从DB中获取文本以呈现html标记而不是显示为纯文本?

谢谢,如果需要补充信息,请告诉我。   卡梅伦

编辑:(添加代码。在脚手架上几乎没什么,但是,whatevs。) 此外,不确定代码片段工具应该如何工作。我希望它可以折叠。

 class DatapostsController < ApplicationController

before_filter :header

def header response.headers['Content-type'] = 'text/html; charset=utf-8' end

# GET /dataposts # GET /dataposts.xml def index @dataposts = Datapost.all @posts = Post.all

respond_to do |format|
  format.html # index.html.erb
  format.xml  { render :xml => @dataposts }
end

end

# GET /dataposts/1 # GET /dataposts/1.xml def show @dataposts = Datapost.all @datapost = Datapost.find(params[:id]) @posts = Post.all

respond_to do |format|
  format.html # show.html.erb
  format.xml  { render :xml => @datapost }
end

before_filter :header


这是要渲染它的视图。这是从主页调用的content_for中调用的部分内容。

respond_to do |format|
  format.html # index.html.erb
  format.xml  { render :xml => @dataposts }
end

我会继续把我所拥有的东西推到生产上。服务器,以了解我希望功能如何。

http://www.sanarothe.com(编辑后约5分钟)

1 个答案:

答案 0 :(得分:3)

您在此处调用的h方法:

<%=h @datapost.body %>

也称为html_escape - 这是relevant link in the documentation。删除它,您的HTML标记应该正确呈现。

您应始终使用h方法显示从用户处获得的代码,以防止跨站点脚本攻击。但是,如果它是从一本书(或其他)中删除的代码,那就应该没问题。