什么会导致 Sprockets::CachedEnvironment 错误?

What can cause Sprockets::CachedEnvironment error?

我的 RoR 应用程序因以下错误而失败:

ActionView::Template::Error (undefined method `attributes_for' for Sprockets::CachedEnvironment:0x00000005baf3d8

据我所知,当 html.erb 模板中的 javascript 正在呈现时会发生此错误。我还注意到,在它发生的所有模板中都存在 tinyMCE 初始化命令。

我想,这是特定于环境的,因为在我的开发机器上它工作正常,在生产服务器上它也工作正常。当我决定安装第二个生产服务器进行测试时,我开始收到此消息。我安装了 CentOS 6 + rvm + ruby 2.2.0(与第一台生产服务器相同)。也许我错过了安装什么东西?

由于问题与 tinymcesprockets 有关,我猜测您正在使用 tinymce-rails GEM。

tinymce-rails GEM 在 sprockets >= 3 下无法正常工作。它使用了一些在版本 3 中删除的 API。

如果您还想使用tinymce-railsGEM,请将sprockets锁定为~> 2。这已经解决了我的问题。

完美的解决方案是为 tinymce-rails 发出拉取请求以使其与最新的 sprockets 一起使用,但这完全是另一回事。