2011-02-03 2 views
0

Я хотел бы создать функцию библиотеки плагинов, которая может использоваться в любом месте моего приложения rails. Я уверен, что это должно быть очень легко сделать, но я не могу найти примеры того, как это сделать. Все обучающие материалы, которые я нашел до сих пор, показывают, как только расширять классы или создавать методы, которые работают только внутри модели или контроллеров.Как создать библиотечную функцию в плагине, доступную всем в Rails 3?

Даже RailsGuide, похоже, не показывает, как это сделать.

Эй, спасибо за помощь!

ответ

1

Самый простой способ сделать это - создать модуль или метод класса, а затем вызвать его. Например:

 
module MySpecialModule 
    def self.do_something 
    puts 'hello world' 
    end 
end 

Затем, следующее можно назвать из любого места:

 
MySpecialModule.do_something 

Если вы действительно намерены иметь свой метод do_something вызываются из каждого отдельного объекта в Ruby, то вы можете продлить класс объекта, как это:

 
class Object 
    def do_something 
    puts 'hello world' 
    end 
end 

class K 
end 

K.new.do_something 
=> hello world 

Вы можете использовать этот же метод, чтобы расширить любой базовый класс, например ActiveRecord :: Base.

+0

Где в структуре файла плагина вы разместили бы модуль и что такое соглашение для именования файла? –

+0

Вы поместите его в каталог lib. Вы следуете тем же соглашениям, что и при создании драгоценного камня. Вы бы назвали его в соответствии с модулем или плагином my_class.rb (MyClass). Вот хорошая статья о создании и публикации драгоценных камней: http://blog.thepete.net/2010/11/creating-and-publishing-your-first-ruby.html –