2012-10-31 18 views
0

我得到了幾個包含相同模塊的類,我想在代碼中的一個地方覆蓋模塊的其中一個方法。 如何做到這一點?在rails應用程序中重寫Ruby方法

我試圖

module [Module_name] 
    def [method_to_override] 

並將其添加到軌道的自動加載路徑,但沒有成功

+1

你確定你的文件需要被?你確定在創建原始模塊後需要它嗎?你所描述的應該起作用。 – 2012-11-01 00:48:28

回答

0

如果您正在使用的模塊作爲一個mixin,你可以重新定義在類中的方法。調用時,在類級別定義的方法將優先。在這種情況下,作爲mixin的模塊只是表現爲超類。

如果您將該模塊用作命名空間,我不確定是否有辦法按照您嘗試的方式動態重新定義代碼。也許就地打開命名空間模塊幷包含該方法的新代碼將會起作用。我以前沒有嘗試過。

部分reference material