Как использовать плагины в папке поставщика вместо драгоценных камней в rails?

#ruby-on-rails #rubygems #ruby-on-rails-3.1

#ruby-on-rails #rubygems #ruby-on-rails-3.1

Вопрос:

У меня есть сценарий, в котором мне нужно изменить определенные функции в моем плагине. Итак, я подумал, что могу изменить файлы в vendor/plugins/ папке. Но потом я понял, что мой установленный код gems использовался rails вместо vendor/plugins/ . Я думал удалить драгоценный камень из моего gemlist но это выдает ошибку. Итак, как я могу перенаправить свои rails, чтобы использовать плагины в vendor/plugins/ папке вместо моих драгоценных камней?

Ответ №1:

Попробуйте, согласно пакетному документу:

 gem [gem name], :path => [path]
  

Пример:

 gem "rails", :path => "vendor/rails"
  

Ответ №2:

Попробуйте обезьянье исправление вместо прямого изменения плагинов / драгоценных камней. Я исправляю их в библиотеке / папке и config.auto_load загружаю ее в свою среду. Это не так уж плохо, просто убедитесь, что это в тех же модулях и имеет то же имя метода. Например, чтобы переопределить строковый метод, вы могли бы сделать что-то вроде:

 class String
  def method_to_override
    do_something
    super # if you want to still use the original method
  end
end
  

Я рекомендую избегать прямого изменения чего-либо напрямую.

Кроме того, если я использую связанные драгоценные камни, я обычно связываю команду exec, но я думаю, что это все равно загружает драгоценные камни из выбранного мной пути. В последнее время я редко использую плагины.