Rails неопределенный метод для ActionView::Helpers::TagHelper
Я получаю неопределенную ошибку метода при запуске рельсов на подготовительной машине. Сообщение об ошибке выглядит так:
undefined method `content_tag' for module `ActionView::Helpers::TagHelper'
(in /home/user/my-rails-app/app/assets/javascripts/templates/general/test.mustache)
Ошибка появляется в файле макета в строке, которая включает в себя "application.js":
<%= javascript_include_tag "application" %>
Stacktrace выглядит так:
kernel/delta/module.rb:39:in `alias_method'
haml (4.0.5) lib/haml/helpers/action_view_mods.rb:74:in `__script__'
haml (4.0.5) lib/haml/helpers/action_view_mods.rb:59:in `__script__'
haml (4.0.5) lib/haml/helpers/action_view_mods.rb:38:in `__script__'
haml (4.0.5) lib/haml/helpers/action_view_mods.rb:1:in `__script__'
kernel/common/code_loader.rb:243:in `require'
kernel/common/kernel.rb:705:in `require'
activesupport (4.0.2) lib/active_support/dependencies.rb:229:in `require'
activesupport (4.0.2) lib/active_support/dependencies.rb:214:in `load_dependency'
activesupport (4.0.2) lib/active_support/dependencies.rb:229:in `require'
haml (4.0.5) lib/haml/template.rb:3:in `__script__'
kernel/common/code_loader.rb:243:in `require'
kernel/common/kernel.rb:705:in `require'
activesupport (4.0.2) lib/active_support/dependencies.rb:229:in `require'
activesupport (4.0.2) lib/active_support/dependencies.rb:214:in `load_dependency'
activesupport (4.0.2) lib/active_support/dependencies.rb:229:in `require'
haml (4.0.5) lib/haml/railtie.rb:5:in `__script__'
kernel/common/eval.rb:43:in `instance_eval'
activesupport (4.0.2) lib/active_support/lazy_load_hooks.rb:38:in `execute_hook'
activesupport (4.0.2) lib/active_support/lazy_load_hooks.rb:28:in `on_load'
kernel/bootstrap/array.rb:66:in `each'
activesupport (4.0.2) lib/active_support/lazy_load_hooks.rb:27:in `on_load'
haml (4.0.5) lib/haml/railtie.rb:4:in `__script__'
...
Я считаю, что эта ошибка связана с тем, что ActionView::Helpers::TagHelper
модуль не имеет content_tag
определяется во время загрузки Haml. (Соответствующий код здесь). По какой-то причине эта проблема не появляется в других идентичных средах. Кто-нибудь может предложить исправить / обойти эту проблему?
[ОБНОВИТЬ]
Это происходит только в режиме разработки. Я использую rbx-2.2.6, actionpack версии 4.0.2 и haml 4.0.5
1 ответ
Найден обходной путь недавно. Если вы убедитесь, что представление действия загружено, а затем вручную загрузили haml, оно будет работать правильно.
В application.rb, после того, как требуются рельсы, но до того, как требуются связанные гемы:
require 'action_view'
require 'haml'
Спасибо Исааку за вдохновение