今日は最後の仕上げのメール送信。フォームで問い合わせた内容を固定のメールアドレスを送信する処理を追加してみる。
まずは、generatorでmailerのmodelを作成する。
これにより、
app/views/contact_mailer/result.rhtml
app/models/contact_mailer.rb
というファイルが作成される。まずは、modelのほうを編集してみる。
vi app/models/contact_mailer.rb
ぱっと中身をみただけで、だいたい何をしたらよいかわかると思うが、まずはActiveHeartの日本語化の機能を利用するため、ActionMailer::Baseを継承している部分を、Iso2022jpMailerを継承させるように変更する。
あとはプロパティで送信者(from)、あて先(recipients)やsubjectなどを定義してしまう。メールの内容をフォームの値をそのまま使うように
@body["contact"] = contact
で引数でわたってくる、contactオブジェクトをbodyに渡している。
そしてviewのほうはこんな感じです。
vi app/views/contact_mailer/result.rhtml
そして、このmailerを利用するように、Controllerに呼び出しを書く。
今回は、最後なのでcontrollerのコードをすべて載せておきます。
vi app/controllers/contact_controller.rb
先頭にcontact_mailerを利用することを宣言し
service :contact_mailer
endメソッドにmailerのオブジェクトを作成し、deliveryメソッドを呼ぶだけで終了だ。
というわけで、はじめてのRailsを体験してみての感想を書いてみる。
良いところ
1.コードを書く量がほんとうに少ない。
2.規約さえ覚えてしまえば、さくさくとコードが書ける。
3.規約のおかげで、どこにどういうコードを書くのかが明確。
4.ソースコードをぱっとみただけで、何をやっているかわかりやすい。
5.ネット上での情報もそこそこ多い。
いまいちなところ
1.viewでformタグを書き換えてしまうと、htmlとしてデザインを確認しにくい。
2.さくらインターネットでcgiとして動かすと明らかに動作が遅い。(Railsの感想ではないが)
3.実際にどういう動作をしているのか、見えにくい。(まあフレームワークなので)
と良いところの目立つ、さすがに今利用が爆発的に増えているフレームワークであることを納得できました。
(0)
(0)
(0)
(0)
Total: 0
Leave a reply