Rails 4 - "没有将Fixnum隐式转换为字符串" - 错误仅发生在生产中

Rav*_*ine 3 ruby production types runtime-error ruby-on-rails

在生产中运行我的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'
Run Code Online (Sandbox Code Playgroud)

对我来说没有任何意义的是,一切都在开发中运行得很好,上面的错误确实让我不知道实际上是什么错误(没有特定的行号),HAML模板中没有任何内容出现在我面前.

运行我的UsersController中的以下代码时,我也遇到类似的错误:

@user = User.last
Run Code Online (Sandbox Code Playgroud)

再次,在开发中工作得很好,但在生产中它告诉我TypeError(没有将Fixnum隐式转换为String).

我忽略了什么吗?我没有看到任何需要类型转换的东西.

注释掉我提到的最后一行不会影响其他错误.

Rav*_*ine 8

我自己想出来了.

我在secretts.yml中制作的secret_key_base只包含数字; 显然YAML(或Ruby的实现)会自动将其解释为整数,而secret_key_base必须是一个字符串.或许,关键基础也必须是字母数字.我不确定.

我希望Rails只在secret_key_base上进行类型转换,所以我不必浪费一半的工作时间来试图解决问题.至少,有一个相关的警告,而不是一个不指向任何方向的神秘错误,本来是很好的.