我正在为我的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分钟)
答案 0 :(得分:3)
您在此处调用的h
方法:
<%=h @datapost.body %>
也称为html_escape
- 这是relevant link in the documentation。删除它,您的HTML标记应该正确呈现。
您应始终使用h
方法显示从用户处获得的代码,以防止跨站点脚本攻击。但是,如果它是从一本书(或其他)中删除的代码,那就应该没问题。