5

我有一个装饰器,它返回一个字符串或一个集合。

在我看来,我想显示这个装饰器方法的返回。

class MyDecorator < Draper::Decorator
  def stuff
    if condition
      'some string'
    else
      render model.some_collection
    end
  end
end

现在在我看来,如果它是字符串,我想渲染字符串,或者渲染集合。

= my_object.stuff

不幸的是我无法访问render里面的方法Draper::Decorator。想法?

4

2 回答 2

7

来自https://github.com/drapergem/draper#accessing-helpers

普通的 Rails 助手对于很多任务仍然有用。Rails 提供的帮助程序和应用程序中定义的帮助程序都可以通过 h 方法访问

因此,替换renderh.render它应该可以正常工作。

于 2013-06-01T02:37:44.760 回答
2

Draper::LazyHelpers您可以在装饰器中包含 Draper 的模块,以使用ActionView::HelpersActionView 的其余部分,就像您一直使用视图一样。

于 2013-10-01T08:02:36.587 回答