##表示されていたエラー
Launchy::CommandNotFoundError Exception: Unable to find a browser command. If this is unexpected, Please rerun with environment variable LAUNCHY_DEBUG=true or the '-d' commandline option and file a bug
##経緯と概要
vagrantがどうこうという記事ばかりで参考になるものが決め打ちでなかなか見当たらなかった為、次回同じ原因でハマった時用の備忘録。
結論、EC2でリモート開発するなら、letter_openerではだめで、letter_opnener_webを使わないといけない。
HogeMailer.hoge(huga).deliver
みたいな感じのパターンで落ちてて、上記エラー出てるなら疑うべき。
##環境
Rails 4.2
Ruby 2.3
letter_opener 1.4.1
EC2に内にソースコードを置いて、SSH接続での開発
##対応方法
letter_openerだと、リモート開発時(EC2にSSH接続している等)には、上記エラーを吐いてしまう。
リモート開発でメール送信機能の確認をしたいのであれば、letter_opener_webの追加が必要。
導入手順は以下。
###1 gemfileにletter_opener_webの追加
gemfileで、
gem 'letter_opener_web', group: :development
を追加する。
###2 config/environments/development.rbの設定追加
config.action_mailer.delivery_method = :letter_opener_web
を追加する。
※※※既にletter_openerをインストールしているのであれば、
config.action_mailer.delivery_method = :letter_opener
という行があるはずなので、
単純に末尾に_web
を足してやればOK。
###3 config/routes.rbに設定追加
最後に、以下3行をroutes内に追加してやればOK。
if Rails.env.development?
mount LetterOpenerWeb::Engine, at: '/letter_opener'
end
##letter_opener_web導入後
localhost:3000/letter_opener/
を別タブでブラウザ上に開いておけば、
メールの送信記録が確認できる。
##参考記事
https://qiita.com/k-shogo/items/d85905535a64e82a3b2b
http://rubyandrails.hatenablog.com/entry/letter_opener_web
https://www.geek.sc/archives/2227
https://qiita.com/7sgg_m/items/178e0d90fc55c5716474