2010-11-12 53 views
0

我創建的文件夾/lib模塊:如何從自定義模塊調用方法?

Module CookieHelper 

    $str = cookies["shoppingcart"] 

    def get_all_cookie_info() 
    end 

end 

但是,這是行不通的。如果我將代碼移動到控制器中,它可以正常工作。

此外,我試圖調用此模塊內的方法。我已經試過:

require CookieHelper 
    CookieHelper::get_all_cookie_info() 

回答

0

CookieHelper::get_all_cookie_info是調用此方法的正確方法。

include CookieHelper 
get_all_cookie_info 

是另一種有效的方式,如果你想包括所有的餅乾助手提供的方法,而不必它們的命名應該(一旦文件的lib/cookie_helper已被加載)。

問題可能是,lib文件甚至不需要,這是因爲rails3不會自動加載lib中的文件。你可以告訴它通過編輯application.rb文件,並設置內部class Application < Rails::Application

config.autoload_paths += %W(#{config.root}/lib) 
+0

作爲jwarchol,也指出,在你的代碼'$ str = cookies [「shoppingcart」]'看起來有點奇怪,而且更像php而不是ruby。如果你想要獲得一些幫助,你可以隨時發佈一個問題。 – Jeremy 2010-11-12 22:37:01

2

使用方法從一個模塊的其它類的內部(如控制器),你做這樣的事情:

include CookieHelper 

一旦你這樣做的裏面你控制器的類,你可以用方法名稱調用get_all_cookie_info()。

這聽起來像你可能會嘗試奇怪的東西,所以如果你想明確get_all_cookie_info應該做什麼,那麼也許我可以提供更多的建議。

+0

這將不利於問題的話,這相當於命名空間因爲他已經做的方法。 – Jeremy 2010-11-12 22:35:32