#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, но я думаю, что это все равно загружает драгоценные камни из выбранного мной пути. В последнее время я редко использую плагины.