2009-11-18 98 views
3

要包含Rails幫助程序helper:helper_name幷包含所有幫助程序helper:all在application_controller中指定。在Rails中包含和排除幫助程序

現在,如何包含N-1的可用幫助者?換句話說,如何排除少數幫手?

+0

出於興趣,你爲什麼要這樣做?現在Rails已經默認「幫助:全部」了。 – 2009-11-18 14:25:09

+0

@John:正確,幫手:對於大多數應用程序來說,所有這些都足夠了。就這點而言,我很想知道包含/排除是否可能像我在問題中提到的那樣。這是我通過改變默認設置來擺弄應用程序的一部分:) – 2009-11-19 05:05:41

回答

3

我認爲你需要編寫一個自定義的方法(比如,all_helpers)(可能通過文件系統調用到app/helpers目錄),以獲得您的所有助手的符號(:foo)或模塊名稱(FooHelper),然後讓要傳遞給該方法的排除列表。然後調用它像:

helper all_helpers(:exclude => :bar) 

看看Rails的ActionController::Helpers#all_application_helpers方法有關如何從文件系統拉幫手名稱的詳細信息。

+0

感謝您的解釋,我會認爲Rails會爲此提供一種內置方法。我爲初始化程序創建了一個[Gist](https://gist.github.com/Stex/9528784),如果有人可能也需要它 – stex 2014-03-13 13:48:11