質問

私はこのスレッドで言及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」

と呼ばれています
役に立ちましたか?

解決

あなたは一般的に宝石ソース自体にパッチを適用する必要はありません。おそらく${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

他のヒント

作品以上Micholsonの答え。しかし、すべてのレールのアプリのための実際の宝石にパッチを適用する(彼の答えに私のコメントを参照)、これは働いています:

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