2014-09-25 73 views
0

我使用的是寶石下列哪些模塊的層次結構下,增加了許多視圖助手:Add方法將寶石的助手

module Ransack 
    module Helpers 
    module FormHelpers 
     def search_form_for 
     end 
    end 
    end 
end 

ActionController::Base.helper Ransack::Helpers::FormHelper 

我要添加自己的輔助方法,在同一個模塊層次結構,使它適用於所有視圖。我該怎麼做呢?

+0

重新打開其中一個模塊並添加您的方法? – 2014-09-25 13:14:33

+0

我應該在哪裏重新打開它?我不確定Rails的加載順序會使它起作用,而我目前的實驗都失敗了。 – Chowlett 2014-09-25 13:18:47

回答

1

用其他方法改變寶石有什麼意義?如果它是一個視圖助手,只需在您的應用的app/helpers目錄中創建一個適當的文件,然後在其中添加您的自定義助手。

自定義助手將可用於所有視圖。

+0

儘管如此,感覺略微_wrong_。該方法肯定與Ransack gem綁定,而不是全局命名空間。事實上,它需要引用'Ransack :: Helpers''對象,這意味着它們需要添加到它們的完整名稱空間路徑。應該可以將該方法添加到它所屬的位置。這就是說,它是一項工作,所以我暫時將它作爲解決方法。 – Chowlett 2014-09-25 13:59:20

+0

污染不受你控制的名稱空間(如寶石)通常不是一個好主意。 – 2014-09-25 14:03:20