Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/solr/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在MySQL和Heroku上为Rails设置富文本支持_Mysql_Ruby On Rails_Ruby On Rails 3_Heroku_Richtext - Fatal编程技术网

在MySQL和Heroku上为Rails设置富文本支持

在MySQL和Heroku上为Rails设置富文本支持,mysql,ruby-on-rails,ruby-on-rails-3,heroku,richtext,Mysql,Ruby On Rails,Ruby On Rails 3,Heroku,Richtext,如何在Rails中存储包含粗体、项目符号和不同大小的格式化文本体 首先,文本字段类型是否能够保存此信息 如果是这样,我所需要做的就是使用富文本编辑器进行编辑,并使用显示吗?是的,文本类型设计用于存储字符串 通常的方法是使用Javascript富文本编辑器生成HTML。将原始HTML直接保存到数据库,然后在显示时对其进行清理。这是为了防止人们在文本区域中输入Javascript和其他恶意代码,当其他访问者查看他们的输入时,这些代码会被执行 默认情况下,Rails 3会清理您的输出,因此所有HTML

如何在Rails中存储包含粗体、项目符号和不同大小的格式化文本体

首先,
文本
字段类型是否能够保存此信息


如果是这样,我所需要做的就是使用富文本编辑器进行编辑,并使用
显示吗?

是的,
文本类型设计用于存储字符串

通常的方法是使用Javascript富文本编辑器生成HTML。将原始HTML直接保存到数据库,然后在显示时对其进行清理。这是为了防止人们在文本区域中输入Javascript和其他恶意代码,当其他访问者查看他们的输入时,这些代码会被执行

默认情况下,Rails 3会清理您的输出,因此所有HTML都将转义。您需要调用
跳过此消毒,或者(更好!)调用
%w(b i p))%%>
,传递允许的标记的显式列表


我没有使用Heroku的经验,但我无法想象它会有什么不同。

除了javascript之外,您还可以考虑使用像wmd editor这样的降价编辑器和像bluecloth或RDisCount这样的gem编辑器——在某些情况下,这是绝对可取的,因为它避免了直接输出HTML的许多问题,并使您的用户能够更好地控制其格式。不过,对于用户来说,它更具技术性。Stackoverflow使用WMD衍生工具,让您了解标记格式语法。这是一个安全的HTML元素白名单列表吗<代码>h1 h2 h3 h4 b i p div ul ol li strong strike em a span img br
我认为
img
可能有问题,但这取决于你的观众(是否会有一些聪明人到处放震撼的图片?)。其他人都很好。请注意,
sanitize
还将剥离所有属性,因此如果您希望使用
img
标记,则需要允许使用
src
属性。这是另一个潜在的风险,但消毒方法有一个相当广泛和创造性的测试套件,用于捕捉鼻涕。