エンジン内の共通コンポーネントの複雑な 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
ヘルパー メソッドで文字列フラグメントを使用する方法はありますか?