お問い合わせフォーム完成!!!

2015/09/04/Fri

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

-完成させるぞ!!-

今日はSinatra側からテーブルをいじってみます!
前回myapp.rbのところに
require’yaml’から、class〜endって書いていて、
classの後ろがSampleになってますよね。
これは自分が考えたテーブルの名前を
単数で最初の文字を大文字にしたものです。
migrationでつくったときに作成されていた
schema.rbを開くと
テーブルがちゃんとあるか確認することができます。

せっかく入力フォームをつくってメールを送っていますが、
このままだと送ったデータが残らないですよね。
ここでデータベースの出番です!
入力フォームで入力した情報をテーブルに保存してみましょう。

〜情報をテーブルに保存しよう〜

samplesをそのまま使ってもいいのですが、
入力フォームということで
mailsというテーブルを作りたいと思います。
そうするとsamplesが邪魔ですよね。
そのままとっておいてもいいのですが
こんがらがりそうなので削除してしまいましょう。
これは簡単!
ターミナルで「bundle exec rake db:rollback」
をうつだけです。
これは一つ前に戻るという意味なのです。

そしてここでmigrationすると
また同じように作ってしまうので、
migrationファイルを消します。
そしてもう一度、mails用のmigrationファイルをつくります。

2015-09-06 21.07.53

そして
samplesを消したのでclassの後ろをMailに変えます。
2015-09-06 21.37.57
こんな感じです。
ではこれを元に入力フォームで入力した内容を
データベースにいれられるようにしましょう。

さて、入力したemail情報を入れていきますよ!!
このサイトを参考にしてやっていきましょう!
ActiveRecordの基本機能とマイグレーション、バリデーション

myaap.rbのファイルの中に
mail = Mail.new
mail.email=@email
mail.message=@message
mail.save
これを入力します。
2015-09-06 21.16.31
こんな感じ!!
@emailと@messageには以前からもお伝えしている内容が
既に入力されていますよね。
それをmail.emailとmail.messageにいれるのです。
これはmailというテーブルのemailというカラム名のところに
email情報をいれるということです。

ここで面白い会話とか入れられたらいいんですけどね…
姉妹とも調べ学習に集中して会話そこまでなんですよね…
でもこれはいいことですよ!!!
自分たちで調べようという心意気!!
ほめてください!!!(切実)

…話を戻します。
そして、これをすれば!
データベースをいれられてるはずなのです!!
これを確認するためには前から使っていた
localhostを使って確かめます。
ターミナルで一時的にサーバを立ち上げて
まずはメールを送ります。
そのあとにpostgresにログインして
テーブルの中を見てみましょう!!
どうですか?入っていたら成功です!!!

〜Herokuでもデータベースをつかおう〜

でもこれだとせっかく一般公開できるように
アプリケーションをHerokuの中にいれたのに
入力フォームに入力した情報は保存されないままに
なってしまっていますね。
これではまずい!!
ってことでHerokuでもデータベースを
つかえるように設定しましょう!
こちらのサイトをご覧ください!!
そして頑張って!(妹投げやり)
herokuでDBをできるようにする

この時にdatabaseのURLをプッシュするのはよくないので、
プッシュしないように設定しましょう!
これは今までやりましたよ!
そうです。.envファイルに書き足せばいいのです!
そしてmyapp.rbも変更しておいてくださいね。
2015-09-17 18.35.34
↓ ↓ ↓ ↓ ↓ ↓
2015-09-17 18.35.52
こんな感じに!

はいはいはい!!
これが設定できたら、
コミットしてー
ターミナルでプッシュしてー
「heroku run bundle exec rake db:migrate」
をターミナルでうちこんでー
Herokuで設定したURLにアクセスして
メールを送ってみてください!!
送れましたか?
ここで!
どうテーブルに反映されたかという確認方法なのですが!
かっこよく受信件数の表示なんてさせてみましょう(にやり)

〜受信件数の表示方法〜

myapp.rbのindexところのget end内に
@count = Mail.count
を追加し、index.erb に
受信件数 <%=@count%>件
を追加するだけです!
この仕組みはもうおわかりですよね!
送信してみてTOPページに戻って件数が増えていたら…!!

完成です!!!
ひゃーーーーーー
姉妹「おつかれさまでした!!!!」
これで完成なのですよおおおお
叫んでいいですよ、叫びましょう。
ひとつアプリケーションつくれたんですもの!!!

完成したソースコードはこちら!!!

〜最後に〜

プログラミングに苦手意識があり、あまりさわったことがなかったぽんこつ姉妹ですが、3週間でお問い合わせフォームという立派なアプリをつくることができました!だからこれをみて少しでも興味を持ってくださった方、お問い合わせフォームをつくってみたいなっと思ってくださった方!
大丈夫です。つくれます。
ぽんこつ姉妹がつくれたのですから!笑
いつかのブログにもありますが、まずは慣れることが大事だと思います!意味はわからなくても、見本のソースコードをクローンして動かしてみましょう(^^)