应用于视图的Ruby on Rails过滤器

时间:2011-05-25 14:58:19

标签: ruby-on-rails ruby view filter

我正在寻找一个可以在渲染后为视图添加“过滤器”的应用程序。例如,如果我的视图呈现为:

"<html><body>demo</body></html>"

我希望将所有字母大写,如下所示:

"<HTML><BODY>DEMO</BODY></HTML>"

关于如何做到这一点的任何想法?谢谢!

1 个答案:

答案 0 :(得分:2)

简单版本(app/controllers/application_controller.rb中):

after_filter do |c|
  c.response.body = c.response.body.upcase
end

但是,这可能很糟糕,因为它会将所有内容都大写。您可能希望将其限制为仅仅HTML响应,即使这样,您也要确保它不会创建无效标记(例如,它应该忽略<script>标记等)。