vagrantで開発してる時もletter_openerの画面みたい

letter_opener_web-001

Railsの開発とかのチラ裏メモです。
大変お恥ずかしい話ですが、私最近までActionMailerを1回も使ってこなかったんですが
わか◯ぎ先生に「m9(^Д^)プギャー」と、謎のメール送信処理をActionMailerに変更するようご教示いただきまして、
「え、何で今まで使ってこなかったの・・ めっちゃエエやんこれ!!」
と、惑星の猿をしておったところです。
Space monkey。

Vagrant環境でLetterOpenerがぁああ

そして、開発環境とかでもActionMailerが飛ばしたメールを見れる
LetterOpener の存在も同時に学んだのでした。
これは便利なヤツやー

しかしですね。私のMacでは何の問題もなく動いていたのですが職場にあるPC(Windows)の開発開発では全くLetterOpenerの画面に行ってくれません。
それもそのはず、Windowsの中にRails環境用意するの全力で嫌がった私はVagrantで開発していたから。
ていうか、LetterOpenerが開かせようとしている
file:///APP_PATH/tmp/letter_opener/1473690409_80de5ca/plain.html
みたいなファイル開けない。

最初、Vagrantの中のディレクトリもWindows側にマウントして〜 みたいな事画策したんですが、ちょっと検索したらもっとイケてるツールがございました。

letter_opener_web

これ→ letter_opener_web
一瞬で解決された件。

まぁ、使い方はGithubのREDMEに書いてある通りなんですが、Gemfileに突っ込んでBundleInstall。
その後は、routes.rbに

Your::Application.routes.draw do
  if Rails.env.development?
    mount LetterOpenerWeb::Engine, at: "/letter_opener"  ←こいつ
  end
end

mount の設定を書いて、、config/environments/development.rb の
config.action_mailer.delivery_method を
:letter_opener_web に変更するだけ。
簡単!( ゚д゚)!

ちなみに、これが上手く動くと
http://localhost:3000/letter_opener
にアクセスすると、↓こういうメール画面が見れるっていう(過去のも見れるし!!)

letter_opener_web_demo

ご丁寧に、Team内にVagrantじゃない人いる場合の記法も

当たり前の話ですが、だいたい皆がMacで開発している最中に一人Vagrantで開発してるヤツがいるからという理由で全員がメール画面を叩いて見なくてもよいように・・と豆知識まで書いてあります。
environmentsの設定で
config.action_mailer.delivery_method = ENV[‘USER’] == ‘vagrant’ ? :letter_opener_web : :letter_opener
って追加するだけで、Macとかには影響与えないようにできました。
なので、Vagrantの中のサーバには環境変数(別にUSERじゃなくてもいいと思うけど)をbashとかに書いておいて、設定されている状態にしておく。

おわり

 

2016-09-12 | Posted in RailsNo Comments » 


関連記事

Comment





Comment



*