Мы объединяем два движка rails 3.2.8 в одно приложение rails. Проблема в том, что ExecJS не любит пространство имен для javascript_inclide_tag в файле макетов. Вот тег, который вызывает ошибку:
<%= javascript_include_tag 'authentify/application' %>
Здесь аутентификация — это имя движка rails. Ошибка:
ExecJS::RuntimeError in Authentify/sessions#new
Showing C:/D/code/rails_proj/engines/authentify/app/views/layouts/sessions.html.erb where line #6 raised:
(in C:/D/code/rails_proj/engines/authentify/app/assets/javascripts/authentify/sessions.js.coffee)
Extracted source (around line #6):
3: <head>
4: <title>Login</title>
5: <%= stylesheet_link_tag "authentify/application" %>
6: <%= javascript_include_tag "authentify/application" %>
7: <%= csrf_meta_tags %>
8: </head>
9:
Если мы удалим аутентификацию пространства имен (<%= javascript_include_tag "application" %>
), то ошибка ExecJS исчезнет, и приложение rails заработает. Такая же ошибка для другого движка rails с тегом js.
Мы используем среду Windows. Что могло вызвать ошибку? Спасибо за помощь.
ОБНОВИТЬ:
В engine.rb для аутентификации все библиотеки js перечислены как:
initializer "Authentify precompile hook", :group => :all do |app|
app.config.assets.precompile += [
'authentify/application.css.scss', 'authentify/layout.css.scss', 'authentify/login.css.scss',
'authentify/paginate.css.scss', 'authentify/sessions.css.scss', 'authentify/sys_logs.css.scss',
'authentify/toolbar.css.scss', 'authentify/user_level_group_map.css', 'authentify/user_menus.css.scss',
'authentify/users.css.scss', 'authentify/application.js', 'authentify/sessions.js.coffee',
'authentify/sys_logs.js.coffee', 'authentify/user_level_group_map.js', 'authentify/user_menus.js.coffee',
'authentify/users.js']
end