Rails5で確認画面経由のメッセージ送信フォームを実装する

Ruby on Railsでメッセージ送信機能を実装します。入力ページ => 確認ページ => 完了ページ の流れです。確認ページにて、再編集なら戻り、確定なら送信します。その時にサイト管理者へメールでメッセージを送ります。データベースは使わないやり方です。
みなみに本記事の続編では、作成したフォームをsimple_form、bootstrap、i18nで作り込んでいますhttps://remonote.jp/rails-simple_form-bootstrap

バージョンは次の通りです。

 

本記事ではMessagesコントローラーを作成していますが、ここは適宜、変更してください。

Routes

config/routes.rb

Controller

ポイントは確認画面から戻るためのparams[:back]です。

app/controllers/messages_controller.rb

Views

入力ページ/確認ページ/完了ページのファイルを作ります。最小限の記述ですが、ご了承ください。

app/views/messages/index.html.erb

hiddenで値を保持して戻れるようにします。

app/views/messages/confirm.html.erb

app/views/messages/done.html.erb

Models

今回はデータベースを使いませんのでモデルはActiveModelを使います。
これでデータの格納やバリデーションもOK!メールの正規表現も入れています。

app/models/message.rb

Mailer

メッセージ送信用のクラスとビューを作成します。

app/controllers/mailers/message_mailer.rb

app/views/message_mailer/received_email.text.erb

Environments

最後にメールサーバの設定ですが、本記事では開発環境にGmailでの設定方法について行います。

config/environments/development.rb

以上です!

続編として、今回作成したフォームをsimple_form、bootstrap、i18nで作り込みますhttps://remonote.jp/rails-simple_form-bootstrap


投稿者:

Shuji

読書したり、プログラミングしたりしています。何かアウトプットできそうなものがあれば投稿していきたいと思います。