Question

Je voudrais appliquer le correctif action_mailer mentionné dans ce fil mais je ne l'ai jamais appliqué un patch avant et je ne sais pas comment ces travaux: https://rails.lighthouseapp.com/projects/8994/tickets/2263

Mon action gem Mailer est ici: /opt/ruby-enterprise-1.8.6-20090421/lib/ruby/gems/1.8/gems/actionmailer-2.3.2

Je suppose que je dois aller à ce répertoire et lancez la commande patch ... quelque chose comme ça?

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

Une chose que je ne suis pas vraiment clair est que le fichier patch fait référence à la « actionmailer » répertoire mais le mien est appelé « actionmailer-2.3.2 »

Était-ce utile?

La solution

En général, vous ne voulez pas patcher la source de gemme lui-même. Vous aurez probablement envie de geler les pierres précieuses dans ${RAILS_ROOT}/vendor/rails, puis appliquer le patch localement.

A partir de votre $ {} RAILS_ROOT dir, vider toutes vos pierres précieuses dans des rails fournisseurs / rails

rake rails:freeze:gems

Appliquer le patch

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

Autres conseils

La réponse de Micholson ci-dessus fonctionne. Mais pour patcher la gemme réelle pour toutes les applications Rails (voir mon commentaire sur sa réponse) cela a fonctionné:

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

J'ai découvert, vous pouvez aussi inverser un patch avec R si quelque chose va mal. Je suis surpris de ce processus n'a pas été mieux documenté quelque part. Espérons que cela se retrouvera dans les recherches Google pour les personnes nouvelles pour patcher comme moi.

Voici une coquille d'une doublure pour patcher un petit bijou:

  

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)

Un autre exemple en utilisant gem gist:

  

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

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top