Как вызвать метод из пользовательского модуля? - PullRequest
0 голосов
/ 12 ноября 2010

Я создал модуль в папке /lib:

Module CookieHelper

   $str = cookies["shoppingcart"]

   def get_all_cookie_info()
   end

end

Но это не работает. Если я перенесу код в контроллер, он будет работать нормально.

Кроме того, я пытаюсь вызвать метод в этом модуле. Я пробовал:

  require CookieHelper
  CookieHelper::get_all_cookie_info()

Ответы [ 2 ]

2 голосов
/ 12 ноября 2010

чтобы использовать методы из модуля внутри другого класса (например, контроллера), вы делаете что-то вроде этого:

include CookieHelper

Как только вы сделаете это внутри класса вашего контроллера, вы можете вызвать get_all_cookie_info() только с именем метода.

Звучит так, как будто вы пытаетесь сделать что-то странное, поэтому, если вы хотите объяснить, что должна делать get_all_cookie_info, то, возможно, я могу предложить больше советов.

0 голосов
/ 13 ноября 2010

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 )
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...