我希望在Rails控制台(https://github.com/drapergem/draper和http://railscasts.com/episodes/286-draper)中看到我的一些Draper装饰器的输出。为此,我一直在寻找一种方法来包含一个装饰器及其类似于应用程序助手的方法:
include ActionView::ApplicationHelper
draper装饰器继承自ApplicationDecorator,它继承自Draper :: Base
class ApplicationDecorator < Draper::Base
end
class MaterialDecorator < ApplicationDecorator
decorates :material
#methods to decorate your material..
end
我已尝试include Draper::Base::MaterialDecorator
,include ApplicationDecorator::MaterialDecorator
以及其他一些类似的变体,但没有运气。
如何在rails控制台中包含一个装饰器,例如上面的Material Decorator?
答案 0 :(得分:1)
所以,事实证明(除非有人可以另外说明)这不是你在rails控制台中测试draper装饰器输出的方式..
相反,你只需:
material = Material.first
material = MaterialDecorator.decorate(material)
material.some_decorator_method
答案 1 :(得分:0)
将app/decorators
添加到Rails自动加载路径:
config/application.rb
中的:
config.autoload_paths << Rails.root.join('app/decorators')
然后,即使在rails console
中,也应该自动加载该路径下的装饰器类。例如:
Material.first.decorate.some_decorator_method # => "good stuff"