0

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

 include ActionView::ApplicationHelper

draper 装饰器继承自 ApplicationDecorator,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?

4

2 回答 2

1

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

相反,您只需执行以下操作:

 material = Material.first
 material = MaterialDecorator.decorate(material)
 material.some_decorator_method
于 2012-11-27T03:55:45.940 回答
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"
于 2016-04-28T07:53:46.403 回答