3

エンジン内の共通コンポーネントの複雑な HTML を生成するヘルパーがあります。

ヘルパー (非常に簡略化):

def component(name)
  component = Component.find_by_name!(name)
  # a whole lot of complex stuff that uses component to build some HTML
end

意見:

<%= component(:my_component) %>

これらのコンポーネントにフラグメントキャッシングを実装したいのですが#component、DRY に保つためにコンポーネント内で実行したいと考えています。

def component(name)
  ...

  cache some_unique_fragment_name do
    html
  end

  # or, more succinctly:
  cache(some_unique_fragment_name, html)
end

問題は、Rails のキャッシュヘルパーが HTML のブロックを Erb でラップすることを想定しているため、前述のように機能しないことです。

#cacheヘルパー メソッドで文字列フラグメントを使用する方法はありますか?

4

1 に答える 1