2016-04-19 37 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