Вопрос

Я хотел бы применить патч action_mailer, упомянутый в этой теме, но я никогда раньше не применял патч, и я не уверен, как они работают:https://rails .lighthouseapp.com/projects/8994/tickets/2263

Моя жемчужина action mailer находится здесь:/opt/ruby-enterprise-1.8.6-20090421/ библиотека/ruby/gems/1.8/gems/actionmailer-2.3.2

Я предполагаю, что мне нужно перейти в этот каталог и запустить команду patch ... что-то вроде этого?

cd /opt/ruby-enterprise-1.8.6-20090421/lib/ruby/gems/1.8/gems/
wget https://rails.lighthouseapp.com/attachments/108548/0001-Fix-implicit-multipart-mailer-views-when-RAILS_ROOT.patch
patch < 0001-Fix-implicit-multipart-mailer-views-when-RAILS_ROOT.patch

Одна вещь, которую я также не совсем понимаю, заключается в том, что файл исправления ссылается на каталог "actionmailer", но мой называется "actionmailer-2.3.2"

Это было полезно?

Решение

Обычно вы не хотите исправлять сам источник драгоценных камней.Вероятно, вы захотите заморозить драгоценные камни в ${RAILS_ROOT}/vendor/rails, а затем нанесите пластырь локально.

Из вашего каталога ${RAILS_ROOT} выгрузите все ваши драгоценные камни rails в vendor / rails

rake rails:freeze:gems

Нанесите пластырь

  cd vendor/rails/ 
  patch -p1 < 0001-Fix-implicit-multipart-mailer-views-when-RAILS_ROOT.patch

Другие советы

Приведенный выше ответ Майкольсона работает.Но чтобы исправить фактический драгоценный камень для всех приложений rails (см. Мой комментарий к его ответу), это сработало:

cd /opt/ruby-enterprise-1.8.6-20090421/lib/ruby/gems/1.8/gems/actionmailer-2.3.2
wget sudo wget https://rails.lighthouseapp.com/attachments/108548/0001-Fix-implicit-multipart-mailer-views-when-RAILS_ROOT.patch
sudo patch -p2 < 0001-Fix-implicit-multipart-mailer-views-when-RAILS_ROOT.patch
sudo rm 0001-Fix-implicit-multipart-mailer-views-when-RAILS_ROOT.patch

Я узнал, что вы также можете отменить исправление с помощью -R, если что-то пойдет не так.Я удивлен, что этот процесс нигде не был лучше задокументирован.Надеюсь, это появится в поиске Google для таких новичков в исправлениях, как я.

Вот вкладыш в виде ракушки для исправления драгоценного камня:

patch -d "$(gem env gemdir)"/gems/actionmailer-* -p1 < <(curl -s https://rails.lighthouseapp.com/attachments/108548/0001-Fix-implicit-multipart-mailer-views-when-RAILS_ROOT.patch)

Другой пример использования gist драгоценный камень:

patch -d "$(gem env gemdir)"/gems/gist-* -p1 < <(curl -s https://github.com/defunkt/gist/commit/5843e9827f529cba020d08ac764d70c8db8fbd71.patch)

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top