2016-04-19 17 views
-1

我有一个Rails应用程序中的问题,我需要搜索并替换某些字符,然后再触发任何控制器操作。之前的行动搜索和替换RoR

例如,一个正确的单引号(')我想普遍用一个单引号替换,左/右双引号也一样,我想用普通的双引号替换。另外,HTML(nbsp) 我想用空白替换。

我知道如何在个别操作和保存前执行此操作,但是按照模型和字段执行此操作变得复杂。在将其分析为散列之前,搜索并替换主体将会很好。

有关如何做到这一点的任何想法?

+0

你将它们保存到数据库之前谈到的参数替换字符? –

+0

是的,但在所有模型中......理想情况下,它不会是之前的保存,它会在它触及任何控制器动作之前 – jdkealy

+0

将一个before_filter放在application_controller的顶部来处理参数。这应该在任何其他过滤器或操作之前完成。你也可以在rails中找到从请求中生成'params'的方法,然后用猴子来修补它。这可能会令人不悦,也可能有风险。 –

回答

2

对于控制器,有before_filter s(http://apidock.com/rails/ActionController/Filters/ClassMethods/before_filter)。

您可以在您的ApplicationController中定义全局before_filter并迭代(并编辑)params散列。

但是,尽管如此,它听起来好像你应该想想为什么在你不需要的PARAMS Unicode字符,而不是如何更换他们之后

编辑:

另一种选择是创建一个自定义的中间件。看看下面的链接:

+0

那么..原因是我运行一个非常大的网站,人们正在剪切和粘贴来自PDF文件的领域,并知道在哪里。迭代params散列是我的第一本能,但它听起来不对,尤其是在有嵌套参数的情况下。在RoR接触它之前没有办法触摸请求的主体吗? – jdkealy

+0

我想中间件层会更容易,谢谢。 – jdkealy