我有一个页面,我在其中迭代多个所有者的一组旅行并在页面上显示所有者图像。我想在视图中缓存整个所有者集,而不仅仅是单个部分。
<%
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.
据我了解,我必须缓存一个字符串。但是,我不知道该怎么做。如何在旅途中为我的所有用户存储组合的部分,并且仍然能够呈现部分?如果我将它存储为字符串,它将呈现为字符串,而不是带有图像的部分。