Удалить require 'matrix'
из lib/matrix.rb
.
Переименуйте в lib/extend_matrix.rb
, чтобы мы могли специально загрузить его.
In config/application.rb
:
require File.expand_path('../boot', __FILE__)
require 'rails/all'
require 'matrix' # <-- moved here
#...bundler stuff...
module MyApp # <-- don't overwrite this!
class Application < Rails::Application
# ...
config.autoload_paths << "#{::Rails.root.to_s}/lib" # <-- set path
require "extend_matrix" # <-- forcibly load your matrix extension
# ...
Уведомление #{::Rails.root.to_s}
. Использование .to_s
имеет решающее значение, поскольку ::Rails.root
возвращает объект Pathname
. Без этого вы будете добавлять /lib
(системный уровень) к пути автозагрузки. Мы хотим /path/to/rails/lib
(уровень приложения).
Не забудьте перезапустить сервер.
Вот так я заставил его работать на меня. Если кто-нибудь знает, как это сделать без статических требований, делитесь. Я уверен, что это можно сделать динамически.