我有一個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'的方法,然後用猴子來修補它。這可能會令人不悅,也可能有風險。 –