Я создал папку и файл
decorators/my_model_decorator.rb
и в нем создал класс
require 'delegate'
class MyModelDecorator < SimpleDelegator
attr_reader :my_model
def initialize(my_model)
@my_model = my_model
end
def containable
ContainableDecorator.new(my_model.containable)
end
end
Но ссылаясь на него так:
instance_x = MyModel.new
decorated_my_model = MyModelDecorator.new(instance_x)
Выдает эту ошибку
NameError (uninitialized constant MyModelDecorator)
(Как ни странно, я могу запустить код в браузере, и сообщение об ошибке знает о классе декоратора, и я могу получить доступ к его методам в консоли браузера.)
Почему у меня такое поведение? Нужно ли мне что-то делать для «инициализации» созданного мной класса?
в соответствии с этой статьей think.co
"Вы увидите эту ошибку, когда код ссылается на класс или модуль, который он не может найти , часто потому, что код не включает require, который указывает файлу Ruby загрузить класс. "
Я этого не совсем понимаю. Вы должны сказать Rails, что где-то требуется MyModleDecorator? Если да, то есть ли какое-то конкретное место, где я должен поместить этот код?