入力した内容をメールに反映させよう! 

2015/09/01/Tue

前回のソースコードはこちら

・.gitignoreを調べて設定
・入力した内容をメールの本文として送信
 →引数をつかう
 →文字列の連結
という内容を今日は行いました。

さあ前回の最後にでてきた
.gitignoreですが簡単に言うと、
gitで管理しないファイルを無視させるファイルのことです。
なぜ.gitignoreファイルを作ったのかというと、
今までにgemをインストールしたと思います。
自分たちが認識していれたgem以外にもセットでインストールされてる
gemが実はたくさんあるのです。
さあ、SourceTreeを見てみてください!
…どうですか?1700くらいありませんか?
妹は思わずスクショしました。
2015-09-01 13.55.24
これらを全部コミットしてプッシュするとしたら大変ですよね。
そのgemをgitで管理しないようにするためのファイルが
.gitignoreなのです!!
また、他人にみせたくない情報が書かれているファイルを
管理しないようにするためにも使用します。

姉妹はbundleというディレクトリと
vendorのディレクトリにあるbundleのディレクトリを
管理しないようにしたいので
# Ignore bundler config.
/.bundle
/vendor/bundle
というのを.gitignoreの中に記述します。
そうすれば、1700もあったのが一気になくなりますよ!

さらに、.envと記述すると、前回妹が設定したように
.envの中身もプッシュされないように変更できます。

ちなみに、「.ファイル名」のように「.」から始まるファイルは
隠しファイルと呼ばれるものです。
これを表示させる方法はこちらをご覧ください。
隠しファイル表示方法

さて、これから入力した内容を反映させて
送信できるようにしていきたいと思います。

前回、get endとdef endを組み込んで書いてもいい
というお話をしたの覚えていますか?
それはpost endとdef endでも同じです。
しかしそれは一般的ではなく、
他の人がそのコードを見たときに
わかりづらいのでわけて書きましょう。

今までの知識を使おうとすると
@つけて変数にすれば反映できそうって思いますよね。
ところがどっこい、
@はget/postなどからendの間しか
変数としての役割をもたないのです。
今回のようにpost endとdef endをわけて書くと
@はなにも役にたたなくなるのです。

困ったー。
また姉妹の検索との戦いが始まりました。
妹「『def ruby』で検索検索ーーっっ!あ、引数つかうっぽい!」
?「正解!」
def endを初めて使うとき、
メソッド定義が詳しく書いてあるURLをリンクとして載せました。
そこに引数のあるメソッドを定義するというのがでてきているのです。
姉妹は学校で少しC言語をやっていて、
引数のことを少し知っていましたが
やはり仕組みは少し違っていて
とことん意味を知りたくなる姉は少し戸惑っていました。
妹が見つけたURL
メソッドの定義と呼び出し
引数を付けたメソッド呼び出し
このサイトを参考にして頑張りました!

2015-09-04-00.57.50
こんな感じです!
send_simple_messageと書かれているのがメソッドで、
その後ろに()で囲まれているのが引数になります。
post endの中に書かれている@emailと@messageの文ですが
それは最後に送信完了画面に表示させるやつで
ここでは関係ありません。

taioububun

このスクショの中に
send_simple_message
という文が2つ出てきていますよね。
その()で囲まれている1つ目同士が対応しています。
そのためdef endの中で
「email」と「message」の変数が使えるようになっているのです。
ちなみに最後の:textの文ですが[]で囲むことで配列を使っています。
これは、メールアドレスと内容がそのまま本文に表示されます。
ただこれだとお問い合わせフォームとして利用していく中で
メールを受け取った側が見づらいですよね。

そこで、これから文字列の連結というのをやってきます。
また検索し始めたのですが、これがなかなかヒットしないのです。
姉が先に見つけてソースコードを書いている中、
見当違いなものばかりヒットさせる妹。
でも!妹に奇跡がおきます!!
妹「そういや、”と’の違いってなんだろう・・・」
それを調べていると、
妹「え、これ???」
そうです、なぜか答えにたどり着いてしまったのです。
妹もこれにはびっくり。
このときのサイトがこちらです。

そのサイトを参考にして頑張った結果、
このようなソースコードになりました!
2015-09-04 17.50.22
変わった部分わかりますか?
…最後の1行だけです。ややこしくしてすいません。
#{}で変数を囲って、自分なりの文章を打てばいいだけです!
例えば
メールアドレスがmiki@miki.comで本文にこんにちはといれたとします。
今回妹が作成した文だと、
miki@miki.comさんからお問い合わせがありました。
内容:こんにちは
となるわけです!
ちなみの\nは改行を意味しています。

今日の内容はここまで!!
お問い合わせフォームまであと少しです!

スクショの中の:to =>のあとにmikiと書かれていますが、
これはなんでもいいので、ここから見本のソースコードにはformと書きます。

今回のソースコードはこちら
参考にしてくださいね!