Настройка/переопределение Rails Simpleform Gem
-
11-10-2019 - |
Вопрос
Я использую Rails Gem SimpleForm, но я думаю, что мой вопрос может быть применим к любому драгоценному камню.
https://github.com/plataformatec/simple_form
У этого есть много отличных функций и настройки, но я хочу пойти немного дальше. Например, я действительно хотел бы, чтобы в сгенерированной наценке не было вставлено классы по умолчанию, но я все равно хотел бы вставить свою собственную вручную. Я обнаружил, что могу удалить некоторые классы, комментируя строки в файлах GEM. Однако это за пределами моего проекта- мне бы хотелось сухое решение, которое останется в моем проекте, когда я развернулся в производстве, предпочтительно без необходимости упаковывать все свои драгоценные камни.
Я полагаю, что это общая ситуация, которая может применяться к любому драгоценному камню, и я должен быть в состоянии полностью или частично переопределить любой драгоценный камень, вероятно, добавив таможенные файлы в мой проект, которые переопределяют драгоценный камень ... но я не уверен, как.
Любая помощь будет оценена! Спасибо.
Решение
Ты о Обезьяна исправление? Скажем, у вашего драгоценного камня есть класс в файле
# simple_form_gem/lib/some_file.rb
class A
def some_method
puts 'A'
end
end
Если вы хотите изменить выход #some_method, то вы можете создать файл инициализатора и сделать
# config/initializers/my_monkey_patch_for_simple_form_gem.rb
class A
def some_method
puts 'duck punching'
end
end
Ваш патч обезьян повлияет только на#some_method, а не на другие методы в A. Просто убедитесь, что выход вашего обезьянного патча не сломает что -то еще в драгоценном камне.