我希望在Rails控制台(https://github.com/drapergem/draper和http://railscasts.com/episodes/286-draper)中看到我的一些Draper Decorator的输出。为此,我正在寻找一种方法来包含装饰器及其方法,类似于我们将应用程序帮助器:
include ActionView::ApplicationHelperdraper装饰器继承自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?
发布于 2012-11-27 11:55:46
因此,事实证明(除非有人可以证明)这不是您在rails控制台中测试draper装饰器输出的方式。
相反,您只需执行以下操作:
material = Material.first
material = MaterialDecorator.decorate(material)
material.some_decorator_method发布于 2016-04-28 15:53:46
将app/decorators添加到Rails自动加载路径:
在config/application.rb中
config.autoload_paths << Rails.root.join('app/decorators')然后,应该自动加载该路径下的装饰器类,即使在rails console中也是如此。示例:
Material.first.decorate.some_decorator_method # => "good stuff"https://stackoverflow.com/questions/13557550
复制相似问题