Подтвердить что ты не робот

Как применить патч к рубину на рельсах?

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

Мой почтовый ящик для действий находится здесь:/opt/ruby-enterprise-1.8.6-20090421/lib/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"

4b9b3361

Ответ 1

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

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

rake rails:freeze:gems

Применить патч

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

Ответ 2

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

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, ищем людей, которые меня не исправляют.