14

このスレッドで言及されているaction_mailerパッチを適用したいのですが、これまでパッチを適用したことがなく、これらがどのように機能するかわかりません: https ://rails.lighthouseapp.com/projects/8994/tickets/2263

私のアクションメーラーgemはここにあります:/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」であるということもよくわかりません。

4

3 に答える 3

11

通常、gem ソース自体にパッチを適用することは望ましくありません。gem を にフリーズしてから${RAILS_ROOT}/vendor/rails、パッチをローカルに適用することをお勧めします。

${RAILS_ROOT} ディレクトリから、すべての Rails gem を vendor/rails にダンプします

rake rails:freeze:gems

パッチを適用する

  cd vendor/rails/ 
  patch -p1 < 0001-Fix-implicit-multipart-mailer-views-when-RAILS_ROOT.patch
于 2009-05-30T19:45:04.070 に答える
8

上記のミコルソンの答えはうまくいきます。しかし、すべてのレールアプリの実際の宝石にパッチを当てるために(彼の答えに関する私のコメントを参照してください)、これはうまくいきました:

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 検索で、これが表示されることを願っています。

于 2009-05-30T20:55:42.540 に答える