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 のDraper::LazyHelpersモジュールをデコレーター内に含めActionView::Helpersて、ビューで常に使用していたように、ActionView とその他の ActionView を使用できます。

于 2013-10-01T08:02:36.587 に答える