Я играю с созданием простой плагиновой системы для своего приложения. В настоящее время я не могу расширять свои модели activerecord изнутри файлов движка.Расширение классов рельсов от двигателей
Скажем, у меня есть следующие модели:
# /my_app/app/models/post.rb
class Post < ActiveRecord::Base
end
Что я хочу добиться того, чтобы иметь возможность поместить файл, например, /my_app/example_engine/app/example_engine/models/post.rb
который добавит некоторые методы к моему Post
класса. Я пытался сделать это, помещая следующее содержимое этого файла:
# /my_app/example_engine/app/example_engine/models/post.rb
Post.class_eval do
def new_method
"hello"
end
end
Но мне кажется, что это не правильный способ сделать это дело, это не работает. Мне, вероятно, не хватает элементарных знаний о классах рубинов или о том, как работают рельсы, поэтому я был бы очень благодарен, если бы кто-нибудь мог мне помочь в этом.
Заранее благодарен!
Нужно ли поддерживать базовый класс в отличие от простого подкласса? –