Ошибка Rails 3 Production Nil с javascript_include_tag - PullRequest
0 голосов
/ 30 марта 2012

У меня есть приложение rails 3.0.9, которое я сейчас пытаюсь развернуть.Приложение отлично работает на моем устройстве dev (ruby 1.8.7 p352, mongrel), но выдает следующую ошибку на производственной коробке (ruby 1.8.7 p334, Passenger).

A ActionView::Template::Error occurred in site#index:
 can't convert nil into String
 vendor/bundle/ruby/1.8/gems/actionpack-3.0.9/lib/action_view/helpers/asset_tag_helper.rb:888:in `read'

Трассировка стека:

vendor/bundle/ruby/1.8/gems/actionpack-3.0.9/lib/action_view/helpers/asset_tag_helper.rb:888:in `read'
vendor/bundle/ruby/1.8/gems/actionpack-3.0.9/lib/action_view/helpers/asset_tag_helper.rb:888:in `join_asset_file_contents'
vendor/bundle/ruby/1.8/gems/actionpack-3.0.9/lib/action_view/helpers/asset_tag_helper.rb:888:in `collect'
vendor/bundle/ruby/1.8/gems/actionpack-3.0.9/lib/action_view/helpers/asset_tag_helper.rb:888:in `join_asset_file_contents'
vendor/bundle/ruby/1.8/gems/actionpack-3.0.9/lib/action_view/helpers/asset_tag_helper.rb:894:in `write_asset_file_contents'
vendor/bundle/ruby/1.8/gems/activesupport-3.0.9/lib/active_support/core_ext/file/atomic.rb:20:in `atomic_write'
vendor/bundle/ruby/1.8/gems/actionpack-3.0.9/lib/action_view/helpers/asset_tag_helper.rb:894:in `write_asset_file_contents'
vendor/bundle/ruby/1.8/gems/actionpack-3.0.9/lib/action_view/helpers/asset_tag_helper.rb:356:in `javascript_include_tag'
app/views/layouts/application.html.erb:79:in `_app_views_layouts_application_html_erb___689799961_85527100_0'

Строка 79 файла application.html.erb:

<%= javascript_include_tag (Rails.env.development? ? "jquery.min.js" :  "http://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js"),
                         "jquery-ui.min",
                         "application", :cache => true %>

Я пытался удалить условие из javascript_include_Tag, но это не имеет никакого значения

1 Ответ

0 голосов
/ 30 марта 2012

Вы можете использовать опцию :cache=>true только в том случае, если все аргументы на самом деле являются файлами на вашем сервере - rails не пойдет и не извлечет для вас jquery из googleapis (а скорее проиграет, если это так)

Поместите jquery.min.js в свой собственный javascript_include_tag, без опции :cache, и все будет в порядке. В качестве альтернативы вы можете перестать пытаться загрузить jquery из googleapis.

...