Ruby on rails can';t将true转换为字符串
我认为我的缓存有问题 我收到以下错误消息:Ruby on rails can';t将true转换为字符串,ruby-on-rails,ruby-on-rails-3,memcached,haml,Ruby On Rails,Ruby On Rails 3,Memcached,Haml,我认为我的缓存有问题 我收到以下错误消息: ListsUsersController#(ActionView::Template::Error)“无法将true转换为字符串” 代码如下: %footer - cache "footer-movies-#{Time.now.hour.to_s}", expires_in: 2.days do .foot-movies %ul - Movie.footer.each do |movie| %
ListsUsersController#(ActionView::Template::Error)“无法将true转换为字符串”
代码如下:
%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
代码大部分时间都在工作,但有时会引发此错误。
我已经有一段时间没亲眼看到了,但我告诉我,在过去的7天里,这个错误已经出现了500多次
我正在使用:
- haml 3.1.2
- 轨道3.1
- memcached 1.4.5
- 达利1.0.5
是完整的stacktrace。您拥有的变量或方法之一没有字符串,它只是“true”,ruby不会将其转换为字符串。您必须找出它是哪一个,并确保它传递了正确的值。请注意:使用插值字符串时,不要执行
to_s
。不要误用括号image\u标记(movie.poster,大小:“60x92”)
从您发布的stacktrace中,看起来缓存返回的是true而不是字符串。您是否在其他地方使用相同的缓存密钥?