複数の所有者との一連の旅行を繰り返し処理し、ページに所有者の画像を表示するページがあります。個々のパーシャルだけでなく、所有者のセット全体をビューにキャッシュしたい。
<%
Rails.cache.fetch("trip_owners_#{trip.id.to_s}", expires_in: 7.days) do
trip.owners.limit(3).each do |owner|
%>
<%=render_user_card(owner)%>
<%
end
end
%>
render_user_card
基本的に個々の所有者の部分をレンダリングします。
def render_user_card(user, options = {})
return "" unless user
render :partial => 'users/user_card'
end
問題は、このエラーが発生し続けることです。
You are trying to cache a Ruby object which cannot be serialized to memcached.
私の理解では、文字列をキャッシュする必要があります。ただし、これを行う方法がわかりません。すべてのユーザーの構成済みパーシャルをトリップに保存し、パーシャルをレンダリングできるようにするにはどうすればよいですか? 文字列として保存すると、画像の部分ではなく、文字列としてレンダリングされます。