我在/lib
文件夹中创建了一个模块:
Module CookieHelper
$str = cookies["shoppingcart"]
def get_all_cookie_info()
end
end
但这不起作用。如果我将代码移动到控制器中,它可以正常工作。
另外,我正在尝试调用此模块中的方法。我试过了:
require CookieHelper
CookieHelper::get_all_cookie_info()
答案 0 :(得分:2)
要使用其他类(例如控制器)内部模块的方法,你可以这样做:
include CookieHelper
在控制器类中执行此操作后,只需使用方法名称即可调用get_all_cookie_info()。
听起来你可能会尝试一些奇怪的东西,所以如果你想说明get_all_cookie_info应该做什么,那么也许我可以提供更多建议。
答案 1 :(得分:0)
CookieHelper::get_all_cookie_info
是调用此方法的正确方法。
include CookieHelper
get_all_cookie_info
是另一种有效的方法,如果你想在cookie帮助程序中包含所有方法而不必命名它们(一旦加载文件lib / cookie_helper)。
问题可能是,甚至还不需要lib文件,这是因为rails3不再自动加载lib中的文件。您可以通过修改application.rb
文件并在class Application < Rails::Application
config.autoload_paths += %W( #{config.root}/lib )