Frage

Ich würde gerne den in diesem Thread erwähnten action_mailer-Patch anwenden, habe aber noch nie zuvor einen Patch angewendet und bin mir nicht sicher, wie diese funktionieren:https://rails.lighthouseapp.com/projects/8994/tickets/2263

Mein Action-Mailer-Juwel ist hier:/opt/ruby-enterprise-1.8.6-20090421/lib/ruby/gems/1.8/gems/actionmailer-2.3.2

Ich gehe davon aus, dass ich in dieses Verzeichnis gehen und den Patch-Befehl ausführen muss ... etwa so?

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

Was mir auch nicht ganz klar ist, ist, dass sich die Patch-Datei auf das Verzeichnis „actionmailer“ bezieht, meins aber „actionmailer-2.3.2“ heißt.

War es hilfreich?

Lösung

Normalerweise möchten Sie die Gem-Quelle selbst nicht patchen.Wahrscheinlich möchten Sie die Edelsteine ​​einfrieren ${RAILS_ROOT}/vendor/rails, und wenden Sie dann den Patch lokal an.

Legen Sie in Ihrem ${RAILS_ROOT}-Verzeichnis alle Ihre Rails-Edelsteine ​​in Vendor/Rails ab

rake rails:freeze:gems

Wenden Sie den Patch an

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

Andere Tipps

Micholson Antwort oben genannten Arbeiten. Aber das eigentliche Juwel Patch für alle Schienen-Anwendungen (siehe meinen Kommentar auf seiner Antwort) dies funktioniert:

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

fand ich heraus, Sie können auch einen Patch mit -R umkehren, wenn etwas schief geht. Ich bin dieser Prozess überrascht wurde nicht besser irgendwo dokumentiert. Hoffentlich wird dies in Google sucht nach Menschen wiederum neue wie mich zu patchen.

Hier ist ein Shell-Einzeiler für ein Juwel Patchen:

  

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)

Ein weiteres Beispiel mit gist Juwel:

  

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

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top