如何在Rails中从CMS中执行用户内容

时间:2010-10-29 00:30:05

标签: ruby-on-rails ruby-on-rails-3

我正在尝试从头开始在Rails中构建CMS,并且为了显示用户生成的页面,我无法确定如何做到这一点。

我现在拥有它的方式,我有一个名为'content'的控制器,其中包含一个名为'show'的动作。在routes.rb中,我有一个规则,将网站名称后的任何名称传递给内容控制器,显示带参数名称的操作。

例如,www.mysite.com/about_us将路由到

:controller => 'content', :action => 'show', :page => 'about_us'

在内容控制器中,我在Pages模型上查找以找到命名页面:

@markup = Page.find_by_name(params[:page])

然后在show.html.erb视图中,我使用原始帮助器来显示内容:

<%= raw @markup.text %>

这种方法是否违反了我在Rails中做事的方式?或者这是一个好的解决方案吗?

1 个答案:

答案 0 :(得分:0)

我最终使用了清理帮助器,默认情况下它会删除<script>标签,这实际上是您需要阻止XSS的,据我所知。对于那些通过搜索找到这个的人来说,唯一的代码就是我在上面描述的内容中所改变的那个代码:

<%= sanitize @markup.text %>