рельсы 4.2.8 - stylesheet_link_tag создает ActionView :: Template :: Error: неявное преобразование nil в строку - PullRequest
0 голосов
/ 09 марта 2019

Я пытаюсь обновить приложение rails, которое прекрасно работает, если я использую rails 4.2.4 (версия, на которой он был разработан) до rails 4.2.7

Как только я переключаюсь на рельсы 4.2.8 или новее (тестировал все версии до 4.2.11), я получаю

Failure/Error: = stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track' => true

ActionView::Template::Error:
  no implicit conversion of nil into String
  # ..../actionview-4.2.11/lib/action_view/helpers/asset_url_helper.rb:140:in `join'
  # ..../actionview-4.2.11/lib/action_view/helpers/asset_url_helper.rb:140:in `asset_path'

Имея добычу на actionview-4.2.11 / lib / action_view / helpers / asset_url_helper, я вижу, что ошибка происходит в

File.join(relative_url_root, source)

, где

pry(#<#<Class:0x00000009a9aa98>>)> source
=> "/assets/application-e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855.css"

pry(#<#<Class:0x00000009a9aa98>>)> relative_url_root
=> {}

Как только я удаляю все stylesheet_link_tags и javascript_include_tags, ошибка больше не появляется (но, конечно, все мои стили и javascripts исчезли).

Вот соответствующая часть моего приложения / views / layouts / application.html.haml

!!!
%html
  %head
    %meta{:name => "viewport", :content => "width=device-width, initial-scale=1.0"}
    %meta{:content => "text/html; charset=UTF-8", "http-equiv" => "Content-Type"}
    %title BrotUndButter
    = stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track' => true
    = javascript_include_tag 'application', 'data-turbolinks-track' => true

Есть идеи?

1 Ответ

0 голосов
/ 10 марта 2019

Неважно.Это была особенная проблема этого самого приложения.Я настраивал пользовательский параметр конфигурации в инициализаторе с

Rails.application.config.x.brotundbutter = Rails::Application::Configuration::Custom.new

, и это вызвало ошибку.Не спрашивайте меня, как я нашел это, это была боль в заднице.

...