Rails: добавлен путь к активу типа Pathname вместо String - PullRequest
0 голосов
/ 01 ноября 2018

Я добавил node_nodules в мои пути ресурсов рельсов:

Rails.application.config.assets.paths << Rails.root.join('node_modules')

Когда я смотрю на пути активов моего рельса, используя:

Rails.application.config.assets.path

Я получаю следующий вывод:

["/Users/gerardsimpson/pier/ruby/ies-portal/app/assets/config",
 "/Users/gerardsimpson/pier/ruby/ies-portal/app/assets/images",
 "/Users/gerardsimpson/pier/ruby/ies-portal/app/assets/javascripts",
 "/Users/gerardsimpson/pier/ruby/ies-portal/app/assets/stylesheets",
 "/Users/gerardsimpson/.rvm/gems/ruby-2.4.0/gems/coffee-rails-4.2.2/lib/assets/javascripts",
 "/Users/gerardsimpson/.rvm/gems/ruby-2.4.0/gems/actioncable-5.2.1/lib/assets/compiled",
 "/Users/gerardsimpson/.rvm/gems/ruby-2.4.0/gems/activestorage-5.2.1/app/assets/javascripts",
 "/Users/gerardsimpson/.rvm/gems/ruby-2.4.0/gems/actionview-5.2.1/lib/assets/compiled",
 "/Users/gerardsimpson/.rvm/gems/ruby-2.4.0/gems/turbolinks-source-5.2.0/lib/assets/javascripts",
 #<Pathname:/Users/gerardsimpson/pier/ruby/ies-portal/node_modules>,
 "/Users/gerardsimpson/.rvm/gems/ruby-2.4.0/gems/react-rails-2.4.7/lib/assets/react-source/development",
 "/Users/gerardsimpson/.rvm/gems/ruby-2.4.0/gems/react-rails-2.4.7/lib/assets/javascripts/"]

Почему мой добавленный путь типа Pathname вместо типа String? будет ли это иметь непредвиденные последствия в моем приложении?

1 Ответ

0 голосов
/ 01 ноября 2018

Почему мой добавленный путь типа Pathname вместо типа String?

Потому что в Rails 3 и новее Rails.root возвращает объект типа Pathname . Вызов join метод этого объекта возвращает другой Pathname.

Если вы хотите строку, вы должны добавить .to_s:

Rails.root.join('node_modules').to_s

будет ли это иметь непредвиденные последствия для моего приложения?

Я так не думаю. Пути преобразуются в строки, когда загрузчик ищет ваши файлы.

...