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

时间:2012-11-26 01:34:58

标签: ruby-on-rails ruby-on-rails-3 decorator draper

我希望在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::MaterialDecoratorinclude ApplicationDecorator::MaterialDecorator以及其他一些类似的变体,但没有运气。

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

2 个答案:

答案 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"