我的 RoR 应用程序因以下错误而失败:
ActionView::Template::Error (undefined method `attributes_for' for Sprockets::CachedEnvironment:0x00000005baf3d8
据我发现,当 html.erb 模板中的 javascript 渲染时,会发生此错误。我还注意到,在所有发生这种情况的模板中都存在tinyMCE初始化命令。
我想,这是特定于环境的,因为在我的开发机器上它工作正常,在生产服务器上它也工作正常。当我决定安装第二个生产服务器用于测试目的时,我开始收到此消息。我安装了 CentOS 6 + rvm + ruby 2.2.0(与第一个生产服务器相同)。也许我错过了安装某些东西?
最佳答案
由于问题与 tinymce
和 sprockets
有关,我猜测您正在使用 tinymce-rails
GEM。
tinymce-rails
GEM 无法与 sprockets
>= 3 正常工作。它使用了一些在版本 3 中删除的 API。
如果您仍想使用tinymce-rails
GEM,请将sprockets
锁定到~> 2
。这解决了我的问题。
完美的解决方案是对 tinymce-rails
发出拉取请求,使其与最新的 sprockets
配合使用,但这完全是另一回事了。
关于javascript - 什么会导致 Sprockets::CachedEnvironment 错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29991316/