【发布时间】:2011-11-09 16:32:32
【问题描述】:
我的缓存有些问题。
我收到此错误消息:
ListsUsersController# (ActionView::Template::Error) "can't convert true into String"
代码如下:
%footer
- cache "footer-movies-#{Time.now.hour.to_s}", expires_in: 2.days do
.foot-movies
%ul
- Movie.footer.each do |movie|
%li= link_to (image_tag movie.poster, size: "60x92"), movie_path(movie), title: movie.title
它抱怨第 40 行,即包含 .foot-movies 的行。
代码大部分时间都能正常工作,但有时会引发此错误。 我已经有一段时间没有亲自看到它了,但Exceptional 告诉我,在过去 7 天里,该错误已被提出超过 500 次。
我正在使用:
- haml 3.1.2
- 导轨 3.1
- memcached 1.4.5
- 达利 1.0.5
Here 是完整的堆栈跟踪。
【问题讨论】:
-
一些注意事项:使用插值字符串时不要使用
to_s。不要滥用括号image_tag(movie.poster, size: "60x92") -
从您发布的堆栈跟踪中,看起来缓存返回 true 而不是字符串。你在其他地方使用相同的缓存键吗?
标签: ruby-on-rails ruby-on-rails-3 memcached haml