如何在Rails控制台中包含Draper Decorators?

我想在Rails控制台(https://github.com/drapergem/draper和http://railscasts.com/episodes/286-draper )中看到我的一些Draper装饰器的输出。 为此,我一直在寻找一种方法来包含一个装饰器及其类似于应用程序助手的方法:

include ActionView::ApplicationHelper 

draper装饰器inheritance自ApplicationDecorator,它inheritance自Draper :: Base

  class ApplicationDecorator < Draper::Base end class MaterialDecorator < ApplicationDecorator decorates :material #methods to decorate your material.. end 

我试过include Draper::Base::MaterialDecoratorinclude ApplicationDecorator::MaterialDecorator ,以及其他一些类似的变种而没有运气。

如何在rails控制台中包含一个装饰器,例如上面的Material Decorator?

所以,事实certificate(除非有人可以另外说明)这不是你在rails控制台中测试draper装饰器输出的方式。

相反,你只需:

  material = Material.first material = MaterialDecorator.decorate(material) material.some_decorator_method 

app/decorators添加到Rails自动加载路径:

config/application.rb

 config.autoload_paths << Rails.root.join('app/decorators') 

然后,即使在rails console ,也应该自动加载该路径下的装饰器类。 例:

 Material.first.decorate.some_decorator_method # => "good stuff"