【问题标题】:can't convert true into String无法将 true 转换为字符串
【发布时间】: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


【解决方案1】:

您拥有的其中一个变量或方法中没有字符串,它只是“真”,而 ruby​​ 不会将其转换为字符串。你必须找出它是哪一个,并确保它传递了正确的值

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-09-19
    • 2020-03-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-10
    • 2019-07-23
    相关资源
    最近更新 更多