我有一个装饰器,它返回一个字符串或一个集合。
在我看来,我想显示这个装饰器方法的返回。
class MyDecorator < Draper::Decorator
def stuff
if condition
'some string'
else
render model.some_collection
end
end
end
现在在我看来,我想渲染字符串,如果它是一个字符串,或渲染集合。
= my_object.stuff
很遗憾,我无法访问render
内的Draper::Decorator
方法。想法?
答案 0 :(得分:7)
来自https://github.com/drapergem/draper#accessing-helpers:
普通Rails助手仍然可用于许多任务。可以通过h方法
访问Rails提供的帮助程序和应用程序中定义的帮助程序
因此,将render
替换为h.render
,它应该可以正常工作。
答案 1 :(得分:2)
您可以在装饰器中包含Draper的Draper::LazyHelpers
模块,以使用ActionView::Helpers
和ActionView的其余部分,因为您一直拥有视图。