Где разместить пользовательские классы в приложении Rails, чтобы они были доступны по всему миру? - PullRequest
2 голосов
/ 25 апреля 2011

У меня есть собственный класс, расположенный в 'lib', и я хочу создать один его экземпляр, который я могу вызывать в любом месте моего приложения Rails - от контроллеров до rake-задач.

Кажется, я могу это сделатьэто с простыми переменными в файле инициализаторов, например:

@foo = "bar"

, и я могу видеть @foo где угодно.Как мне создать экземпляр моего класса, чтобы я мог вызывать его и его методы из любого места?

TIA

Ответы [ 2 ]

6 голосов
/ 25 апреля 2011

В каталоге lib: lib/some_thing.rb

Также смотрите комментарии в config/application.rb:

...
# Custom directories with classes and modules you want to be autoloadable. 
...
3 голосов
/ 25 апреля 2011

Мне кажется, что вы пытаетесь создать одноэлементный экземпляр вашего класса в lib.

Посмотрите на синглтонный модуль Руби в стандартной библиотеке ruby ​​http://www.ruby -doc.org / stdlib / libdoc / singleton / rdoc / index.html

Тогда вы всегда можете получить к нему доступ

SomeClass.instance

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...