我有一个Rails应用程序中的问题,我需要搜索并替换某些字符,然后再触发任何控制器操作。之前的行动搜索和替换RoR
例如,一个正确的单引号(')我想普遍用一个单引号替换,左/右双引号也一样,我想用普通的双引号替换。另外,HTML(nbsp) 我想用空白替换。
我知道如何在个别操作和保存前执行此操作,但是按照模型和字段执行此操作变得复杂。在将其分析为散列之前,搜索并替换主体将会很好。
有关如何做到这一点的任何想法?
我有一个Rails应用程序中的问题,我需要搜索并替换某些字符,然后再触发任何控制器操作。之前的行动搜索和替换RoR
例如,一个正确的单引号(')我想普遍用一个单引号替换,左/右双引号也一样,我想用普通的双引号替换。另外,HTML(nbsp) 我想用空白替换。
我知道如何在个别操作和保存前执行此操作,但是按照模型和字段执行此操作变得复杂。在将其分析为散列之前,搜索并替换主体将会很好。
有关如何做到这一点的任何想法?
对于控制器,有before_filter
s(http://apidock.com/rails/ActionController/Filters/ClassMethods/before_filter)。
您可以在您的ApplicationController
中定义全局before_filter
并迭代(并编辑)params
散列。
但是,尽管如此,它听起来好像你应该想想为什么有在你不需要的PARAMS Unicode字符,而不是如何更换他们之后。
编辑:
另一种选择是创建一个自定义的中间件。看看下面的链接:
你将它们保存到数据库之前谈到的参数替换字符? –
是的,但在所有模型中......理想情况下,它不会是之前的保存,它会在它触及任何控制器动作之前 – jdkealy
将一个before_filter放在application_controller的顶部来处理参数。这应该在任何其他过滤器或操作之前完成。你也可以在rails中找到从请求中生成'params'的方法,然后用猴子来修补它。这可能会令人不悦,也可能有风险。 –