在生产环境中运行我的 Rails 4.1 项目时出现以下错误:
ActionView::Template::Error (no implicit conversion of Fixnum into String):
8: %meta{content: "", name: "description"}/
9: %meta{content: "", name: "author"}/
10: = stylesheet_link_tag 'application', media: 'all'
11: = csrf_meta_tags
12: %body
13: .header.navbar.navbar-inverse
14: = render 'layouts/header'
对我来说没有任何意义的是在开发中一切正常,上面的错误真的让我不知道什么是真正的错误(没有具体的行号)并且 HAML 模板中的任何内容都没有出现我。
当我的 UsersController 中的以下代码运行时,我也会遇到类似的错误:
@user = User.last
同样,在开发中工作得很好,但在生产中它告诉我TypeError(没有将 Fixnum 隐式转换为 String)。
我是不是忽略了什么?我没有看到任何需要类型转换的东西。
注释掉我提到的最后一行不会影响其他错误。
最佳答案
这是我自己想出来的。
我在 secrets.yml 中为生产制作的 secret_key_base 只包含数字;显然 YAML(或 Ruby 的实现)自动将其解释为整数,而 secret_key_base 必须是字符串。也许 keystore 也有必要是字母数字的。我不确定。
我希望 Rails 只是对 secret_key_base 进行了类型转换,这样我就不必浪费一半的工作日来试图根除问题。至少,如果有一个相关的警告而不是一个没有向我指出任何方向的神秘错误,那就太好了。
关于ruby-on-rails - Rails 4 - "No Implicit Conversion of Fixnum into String"- 错误仅发生在生产中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24767863/