はじめまして(*^^*)

2015/08/17/Mon

はじめまして!
今回、Circle Aroundさんで
夏期インターンシップでお世話になることになりました。
ぽんこつ姉妹、姉のあかねです。妹のみきです。

プログラミングのことをあまり知らないということと、
「ふたり、姉妹みたいだね」と言われたことから
ぽんこつ姉妹という名前を考えつきました!
あ、同い年です笑

企画名は
「ぽんこつ姉妹のRuby女子会〜基礎からWebはじめました〜」
です!
初めのうちは、HTMLなどの基礎からやっていきますが、
のちのちRubyをやるのでRuby女子会という名前を考えました。
企画名が長いため『るびじょ』という略称も考えたので
ぜひぜひ、覚えてくださいね!

妹はデザインセンスが0なので、
デザインは姉が担当します。
このブログのデザインも記事にのせるイラストも全部です。

基本的にこのブログは、

デザイン・イラスト、文章確認:姉
文章作成:妹

といった偏った担当でやっていきます。

ということでプログラミングの経験がないところから
2人で頑張っていきますので
よろしくお願いします!

P.S. キャラクターを考えました笑
sinatrakun
上記にRubyを勉強するとありますが、
その際にSinatraというフレームワークを使用するみたいなので、
こんなキャラクターになりました〜
ちょこちょこ出てくると思うので、よろしくお願いします!

紙芝居をつくろう

2015/08/17/Mon

今日がインターンシップの初日でした!
今回の全体的な最終成果物が
「お問い合わせフォームをつくる」です。
そこを目指してこれから毎回頑張っていきます。

そして初めて学んだ単語がありました。
まずは「画面遷移図」

gamensenizu

これは、画面の構造を表す図のひとつで、全体をざっくりと書きます。
どのようにページが移動するのか、
画面同士がどのような関連性をもっているのか

ということを示した図のことです。
基本的にはデザインは書きません。

 

次に「紙芝居」
タイトルにありますが、今回つくった紙芝居は
小さい頃に読んでもらったような紙芝居ではないんですよ!!

kamisibai
ここでの紙芝居というのは、
画面デザインと遷移のみを
実際に動くかたちでつくったもの
をいいます。
これらのことを知り、今日の作業がスタートです。

 

今日は、お問い合わせフォームの紙芝居を作成しました!
具体的な目標は、
1、画面のHTML
2、ページを行き来できる
3、画像をいれる
4、CSSで見た目を整える
です。
HTMLもCSSもすこーしだけやったことがあったので
比較的にサクサクと進むことができました!

 

これで今日の作業は終了です!
明日に続く!

gitを使ってみる【準備編】

2015/08/17/Mon

gitというのは簡単に言えば、
ソースコードなどの変更履歴を保存して
管理してくれるシステムです。
また詳しくは次回説明します。

gitを使うにあたって、
・gitのインストール
・Source Treeのインストール
・GitHubのアカウント作成
・GitHubアカウントにSSHの鍵を登録
を、行いました。
各項目ごとに参考サイトを載せるので見てください!

1

gitをインストールするにあたって、
homebrewをインストールしました。
homebrewは、簡単にいうと
gitを簡単にインストールするために使う道具です。

homebrewをインストールするためには、
ターミナルを起動させます。
言われたとおりにコマンドを入力し、
なんとかインストール完了。
そこからgitをインストールです。
なぜか妹のPCには古いgitがはいっていて、
新しいバージョンに切り替えるのに
とても時間がかかってしまいました。
姉は問題なくインストールに成功しました。
参考サイト
gitのインストール(Mac)

2
Source Treeのインストールは、
英語だらけでよくわからなかったけれど
とりあえず
クリック、クリック、クリックでインストールしました。
参考サイト
Source Treeのインストール

3
これも、作成方法を教わりながらアカウントを作成していたので、
英語を調べながら作業することなく、作成できました。
参考サイト
GitHubのアカウント作成

4
ここでもターミナルの登場です。
手順のページに書かれているコマンドをコピーして
それをターミナルにペーストしてを繰り返して、
秘密鍵・公開鍵を生成しGitHubに登録しました。
参考サイト
GitHubアカウントにSSHの鍵を登録

秘密鍵・公開鍵と突然言われても
わからないですよね!!
私たちも最初はさっぱりわかりませんでした。
普通はログイン画面などでIDとパスワードを入力すれば、
どのPCからもサインインすることができます。
それを防ぐために秘密鍵と公開鍵というものを使い、
秘密鍵が入っているPCからのみサインインできるようにします。
そして、その秘密鍵を使うための暗号がパスフレーズというものです。
秘密鍵と公開鍵は認証のために使う2つのファイルであって、
ペアになっています。

秘密鍵が鍵、公開鍵が鍵穴という感じです。
公開鍵は認証を行なうサーバーやWEBに預けて、
秘密鍵は自分のPC上に自分しか見られないように扱います。
SSHは結びつけるもののような感じです。
これは説明できるようになったら説明します。…すみません。

これまでの作業の画面なのですが、ほぼ英語!!!
実は、妹は英語がさっぱりで今まで逃げ続けてきたのです。
なのにここにきて…
…逃げたい。逃げられない。
姉に助けてもらいながらなんとか全部できました。
これからも英語がたくさん出てくるので、
勉強しなくてはいけないなーとすごく感じた妹でした。

gitを使ってみる【撃沈編】

2015/08/18/Tue

昨日のおわりにgitの事前準備を行なったので、
今回は初めてgitをつかってみました!

gitはPCの中に保存する場所を作ってくれて、
保存した履歴とかを管理してくれるという感じ。
ターミナルでコマンドを入力して操作することもできますが、
それでは大変なので、簡単に操作できる
昨日ダウンロードしたSource Treeを使って、
自分が保存したいファイルをgitに教えていきます。

例えば自分が前に書いたソースコードを
変更したあとに、Source Treeを見てみると!
変更したところをこんな風に教えてくれるんです!

modification

姉妹「おおおおおおおおおおおおおおおおお!!!!!!!!!!!」
すごいですよね、、、感動しました、、、
でも、ここからの作業が問題でした笑

そもそもなぜgitにバックアップをするのかというと、
ソースコードとかは少しだけでも変化すると、
動かなくなったり表示が変わってしまいます。
例えば、「昨日までは動いてたのに!?」みたいな感じです。
その場合、昨日のソースコードに戻りたいですよね。
そこで、バックアップの出番です。
gitのバックアップは
保存したソースコードの変更した履歴を取っておいてくれます。

ということで、

・gitにバックアップ(コミット)する
・GitHubにアップロード(プッシュ)する
・GitHubから自分のPCにダウンロード(プル)する
・新規の人が他人のファイルを
 新しく自分のPCにダウンロード(クローン)する

という作業をやったのですが、、、
これを理解するまでに時間がかかり、
姉妹ふたりとも何回もかたまりました。。。
頭が「?」でたくさんなので、
これから使っていって理解した段階で説明しますね><;

Bootstrapを使ってみた

2015/08/21/Fri

今日は、「初日につくった紙芝居をデザインする」
ということをやりました。
なのでBootstrapを始めに学びました。

BootstrapはCSSのフレームワークです!
あらかじめCSSが用意されているので、
そこから使いたいものを引っ張ってくるだけです。便利!
・デザインできない人が簡単にデザインすることが出来る
・早くデザインが作れる
・1つのソースコードでいろいろなデバイスの対応ができる
などという利点があります。

これならデザインセンスが0の妹でも
姉みたいにきれいなデザインを作り、
使いこなすことができるのではないかと
わくわくして挑みましたが、これが撃沈。
終始質問攻めをしていたのにも関わらず口ぽかんでした。
そんな妹を横目に、
すらすらソースコードを書いていく姉。流石すぎます。

まず、妹が撃沈した理由のひとつとしてあげられるのが
用語を知らないということです。
このタグはHTMLで使われているのか、
CSSで使われているのか、
はたまた Bootstrapで使われているのか
さっぱりでした。
どのコードがどこに効いているのかがわからなかったのです。

わからないことを質問攻めして
なんとなく理解したことと、新しくわかったことがありました。

  • <div>
    何かをかこみたいときに使う。特徴はなにもない。
  • <p>
    <p>で囲むと上下に1行空きができる
  • <br>
    文章を改行したいときに使う
    →レイアウトに隙間をあけたいと思ったときは、
     marginなどを使う
  • <id>
    id名は何種類でもいい
    ただ、同じid名は1ページに1回しか使えない
  • <class>
    class名も何種類でもいい
    さらに、同じclass名は1ページに何回も使っていい
    classは複数指定できる(例:<class=“btn1 btn”>
  • 中央寄せ
    要素自体を中央寄せするのか、
    テキストを中央寄せするのかが違う
  • Grid System
    Bootstrap上では1行を12列に分割している
  • レスポンシブ
    画面サイズによってデザインをかえること

ざっとこんな感じです。

Bootstrapの中の用語はたくさんあって
今は全部把握しきれていない状態です。
全部調べていこうとしたときに神の声が聞こえました。

「とりあえず、
 ネットに転がってるソースコードをコピペしていじっていいから、
 そこから少しずつ動かしていって、理解していくことが大切だよ」

なるほど!

妹「コピペしていいんだって!(安心)」
姉「それからちゃんとアレンジしなきゃダメだよ!笑」

早速、デフォルトのソースコードをいただき、動かすことにしました!
上に書いたような用語を理解するのに時間がかかりましたが、
ここからは案外なんとかなりそう!いじるだけだし!

BA
妹「できた、、、やった、、、」
達成感と疲労感とでいっぱいです笑
姉はBootstrapを使わず、自力でCSSを書き続けてました;;

今日は、姉がすらすら出来すぎていて
妹との差が激しすぎました。

妹「明日は差がないように努力します。頑張ります。」
姉「楽しかった。ずっとやっていたい」

gitを使ってみる【解決編】

2015/08/21/Fri

以前、gitをつかってみるの撃沈編をお送りしました。
・gitにバックアップ(コミット)する
・GitHubにアップロード(プッシュ)する
・GitHubから自分のPCにダウンロード(プル)する
・新規の人が他人のファイルを
 新しく自分のPCにダウンロード(クローン)する
という作業のことですよ、覚えてますか!!

初めてgitを使ってみてから
何回もgitを使い、慣れていこうと頑張ってみた姉妹。

姉妹「あれ、あの日は混乱してたのに、
   使ってみたら意外と使えてる…!」

そうです。深く考えなければ、なんだかんだ使えてるのです。
これなら頑張れば説明できるのではないかと思い
解決編を書こうと思ったのです。

ー謎解きー

〜リポジトリとは〜

gitでファイルを管理しておけば、
保存した履歴がgitに保存されていきます。
そのファイルやディレクトリの状態を記録する場所のことを
リポジトリといいます。
リポジトリの管理下に変更した履歴を
管理しておきたいディレクトリをいれておくことで
そのディレクトリ内のファイルなどの履歴を記録してくれます。
だからgitを使う場合にはリポジトリを
作らなければいけないということですね。

さらにさらに、そのリポジトリは2種類あるのです。
それはローカルリポジトリとリモートリポジトリです。
ローカルリポジトリは、自分のPC上にあるリポジトリで
リモートリポジトリは
ここではGitHubに配置されているリポジトリです。

…わかりますか?

〜姉妹のわからなかったこと〜

ところで、最初にわからなかったのは
その変更履歴の保存場所だったのです。
姉「いったいどこに保存されているのだろう…」
妹「このPC上のどっかっしょ!」
姉「それはわかってるんだって、
  そのどこに行ってるのかが知りたいの!」
妹「………考えてなかった」
今では、雰囲気(!)で感じとっています。

ただ、自分が変更したファイルを上書き保存したからといって
コミットされてるわけではないですよ!
ちゃんとSource Treeを使ってコミットボタンを押さないと!
コミットしてから、次にコミットするまで、
自分がたくさんソースコードを変更しても、
その変更履歴は残らないので
そこは注意しておきたいですね。

バックアップするメリットは
撃沈編でも書いたのでわかりますよね。

あれ、神の声が聞こえる…
「ずっとバックアップ、バックアップ言ってるけど
 gitではバックアップって言わないんだよ!イメージは一緒だけど!
 gitでは『コミット』って言うんだよ」

…そうらしいです。
覚えておきましょう!

〜プッシュ、プッシュ〜

次にGitHubにアップロードするという話なのですが、
実はアップロードもgitでは『プッシュ』といいます。
では、なんのためにプッシュをするのかというと
自分ひとりだけでソースコードを書いていたとき、
万が一PCが壊れてしまったら、
ローカルリポジトリ自体にもアクセスできなくなってしまい、
データを復活することができなくなってしまいますよね。
それは大変!
また、何人かで共同でソースコードを書いていたとき、
共有するのがめんどくさいですよね。
これまた大変!
そんなときプッシュが便利なのです。
プッシュすることでGitHubにあるリモートリポジトリに
ソースコードが保存されます。
自分のPC上ではなくサーバーに保存されるので
そこにアクセスすれば誰でもみることができるのです。

姉「普通にみんなに見られるとか怖い」
妹「恐怖、恐怖」
?「GitHubにお金を毎月払ったら、
  プライベートリポジトリっていって
  公開されないようにも出来るんだよ」
姉妹「結局お金かーー」

〜プル&クローン〜

そして、プッシュしたデータをPCに取り込むことを
『プル』『クローン』といいます。
なにが違うの?って思いますよね。
プルというのは、元々そのデータが入っていて、
そのデータを更新することです。

push_pull
クローンというのは、新しく他の人にデータを貰いたいときに
ダウンロードすることです。
一回クローンすれば
そのデータを更新したいときは、ずっとプルです。

clone
クローン→自分が編集→コミット→プッシュ→他の人が編集→プル→自分が編集→コミット……
という感じです。

〜まとめ〜

姉妹ふたりとも丁寧に説明してもらったのですが、
最初はほんとにわかりませんでした。
でも使ってるうちにつかめてきます!ほんとに!
わかるまで使い続けましょう!!

姉妹「つかえるようになれば楽だった」

ついに!Rubyに挑戦!!

2015/08/24/Mon

今日から本題のRubyとSinatraにはいりました!

〜インストール〜

まずは、Rubyをインストールするために
「rbenv」をインストールします。
Rubyはいくつもバージョンがあるらしく、
rbenvをインストールすることで、
バージョンを簡単にシフトすることが出来ます。
そのあと、Rubyをインストールしました!
参考サイト
rbenv&Rubyのインストール

続いてSinatraのインストールです。
Sinatraのインストールはとても簡単で
ターミナルに
「gem install sinatra」

「gem install sinatra-reloader」
の2行を打つだけです!
参考サイト(2.Sinatraのインストールからご覧ください)
Sinatraのインストール

〜Ruby?Sinatra??〜

「Rubyは言語で、Sinatraはフレームワークです。」
そう言われたのですが、
妹はここの関係性がわかりませんでした。

姉「Rubyは難しいから、それを簡単に扱うのがSinatraだよ」
妹「??????
  …この前やったBootstrapとcssの関係みたいな感じ?」
?「まあそんな感じっちゃそんな感じだね」
妹「ほーほー」

んんん……
このソースコードはどこがRubyでどこがSinatraなんだ??

ここから妹は質問攻めをしました。
結果!
・SinatraはRubyで書かれている!
・SinatraはRubyでWebアプリケーションをつくるときに
 必要なものを集めてあるもの!
ということがわかりました。
これを把握できたことが妹の中ではすごく大きく、
頭の中の「?」が減りました。

厳密に言うと少し違うのですが、感覚的には
フレームワークというのは、
「なにか特定の言語で、何かしらのアプリケーションをつくるときに
必要であろうものを集めてあるもの」
という感じです!

姉が妹のために、身近なもので
RubyとSinatraの関係性を表現してくれたので、
こちらをご覧ください!↓↓↓↓
vegetables

〜Hello world!〜

さてさて、これから
Rubyをつかって「Hello world!」
と表示したいと思います。

姉妹はいつもSublime Text2を使っているので、
そのエディタを使っていきます。
まずはエディタでファイルをつくります。
ファイルの拡張子なのですが、
厳密には「.rb」にしなくても動きますが、
「.rb」にすることが推奨されています。

そのファイルの中に
 2015-08-24 16.31.28
と打ちましょう。

打ち終えたら、ターミナルに移動します。
ここからが少し大変なのですが、
ファイル名.rbのファイルがある場所に
「ls」や「cd」コマンドを利用して移動して、
「ruby ファイル名.rb」というコマンドを実行します。
こんな感じ!↓
screenshot-2015-08-24-17.14.44
Webサーバーを立ち上げるためです。
今は一時的にターミナルでWebサーバーを立ち上げているので
ターミナルを閉じて、またRubyでつくったものを表示させたいときに
ターミナルでこのコマンドを入力します。

ターミナルの使い方でわからないことがあったら
妹もこのサイトをみて頑張ったので
こちらをご覧ください!
ターミナル使い方

入力し終えたら、
ブラウザでhttp://localhost:4567/を開いてみてください!
そうすると…
screenshot 2015-08-24 16.53.39
このように表示することができました!

〜まとめ〜

gitのときでもそうでしたが、
『習うより慣れろ』
ということなので、
これからたくさん使って理解を深めたいと思います!

姉妹「頑張ります!」

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

HTMLファイルを出すためには?

2015/08/25/Tue

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

?「じゃあ次は、この前作ったHTMLファイルを
  Rubyでだしてみよう!」
姉妹「…え?どういうこと?」
妹「リンクってことではないですよね?」
?「うん、違うね」

ここから姉妹の戦いが始まりました。
各自、HPを漁っていきます。
妹「『ruby htmlファイル 出力』……
  いや、でもファイルに入出力するわけではないか」
姉「『ruby html 埋め込み』……違うかー。
  そういえば、SinatraってRubyを簡単にしてくれるんだよな〜、
  そしたらSinatraでググればいいのかな」
?「うんうん」妹「(なるほど)」
妹「『Sinatra htmlファイル 読み込み』……
  え!これめっちゃいけそう!!ぽいぽいぽい!!」
screenshot 2015-08-25 17.24.58
妹「え、できない…」
?「これより簡単な方法あるよー」
妹「まじかーーー」
姉「『sinatra html』……このHPに書いてあるっぽい…」
妹「………(負けず嫌いだからまだ聞かない)」
?「あー、このHPの通りにやったらできるね」
妹「…!!???(姉に先越されて少し悔しい)」
姉「あれ?拡張子が.htmlになっちゃう!」
妹「チラ…、カタカタカタカタ。よっしできたー!!」
姉「ええええ!!!」

さあ、姉が発見したHPにはどんなことが書いてあったのでしょうか。

〜どうすればいいの?〜

Sinatraでは、「.erb」という形式でHTMLを表現できます。
そして、これらの基本構造は、このようにしましょう。
├── myapp.rb
└── views
 └── index.erb

myapp.rbと同じところに「views」というフォルダをつくり
その中に「.erb」のファイルを作成します。
「.erb」は、RubyもHTMLも書ける便利な拡張子です。
index.erbに、呼び出したい内容を書きます。
myapp.rbには
2015-08-28 22.14.27
と書きます。
姉が発見したHP

〜拡張子の問題〜

さて、ここで姉が壁にぶち当たった拡張子のお話です。
今までのように、Sublime Textで保存する際に
ファイル名を「index.erb」と入力したのですが
なぜか保存して開いてみると「index.erb.html」
となってしまっているのです。

ここで、神の声待ち!!!

「ファイルのところで『情報を見る』をクリックして
そこから名前と拡張子ってとこで直してみな!」

姉「ほおお……、あ!できた!!」
box
無事保存することができて動かすことが出来ました!
さらに、ファイルの拡張子を常に表示させる方法があります。
そうすることで、ファイル名を変更するときに
拡張子自体も変更することが可能になり、
楽に変更することが出来ます。
そのやり方はこちらをご覧ください。
参考サイト
拡張子を常に表示させる方法
もし拡張子が自分が保存したい拡張子にならない場合は
この方法を実践してみてください!

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

別ページに移動してみよう!

2015/08/26/Wed

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

?「前回HTMLファイルを呼び出したけど、そのindex.erbから違うページへの行き方を調べてみましょう。さらに今回はそのページを『http://localhost:4567/about』でだせるようにしましょう。」

姉妹「はーい」
ということで、また各自調べ始めました。
そしてほぼ同時に
姉妹「できたーー!!!」
はい、できました。

妹が参考にしたサイト:違うページへの行き方

そのやり方なのですが、
まず最初につくった「.rb」ファイルの中に
get ‘/about’ do 
  erb :about
end
というソースコードを書きます。
このような感じです。↓↓
filename
そしてもしHTMLのファイルをもともと作っていて
about.htmlをリンクしようとしていたら
index.erbのソースコードをこのように変更しましょう。
box1
そうすると!ちゃんと動くはずです!

でもまだページの移動だけしか出来ていなくて
CSSや画像の読み込みなどはまだです。

〜ブラウザ、サーバって?〜

さてさて、index.erbから違うページへの行き方は
簡単にできた姉妹だったのですが、
ブラウザとサーバの関係でつまずきました。
Rubyでのお話ですが、
まず、ブラウザというのはサーバからきた文字列を
デザイン化して表示するという感覚です。
サーバは、ブラウザからの要求をうけて、
その結果を文字列として返します。
server

姉がわかりやすく図を書いてくれました!
1.ユーザーがブラウザでアクセスしたいURLをうち、
  そのURLが要求としてサーバに送られる。
  ここでのURLはhttp://localhost:4567/aboutです。
2.「localhost:4567」というサーバが
  /aboutの情報を取得するように動作し、get関数を見つける。
  そこでabout.erbのファイルをブラウザに返すことを認識する。
3.about.erbのファイルを呼び出して、文字列としてブラウザに返す。
4.サーバから返ってきた文字列をブラウザがデザイン化して表示する。

まるでブラウザとサーバはコンビですね。
漫才みたいですね。
ブラウザさんがボケで、サーバさんがツッコミの感じ!
ブラウザさんがボケたら、
サーバさんはそのボケが書いてあるネタ帳を探して
必ず突っ込んでくれます。
サーバさん優しい…!!

妹自身もあまりよくわかっていない状況なので
またわかり次第詳しく書きたいと思います。
ごめんなさい!!

〜ちなみに〜

最初にターミナルでWebサーバを立ち上げる
という話をしましたよね。
そのWebサーバーというのが「localhost」であって
自分のPCの中にあるのです!

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

入力した内容の表示

2015/08/28/Fri

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

今まではリンクを使って、
入力画面から送信確認画面に進んでいました。
それを今日はリンクではなく!
さらに入力した内容を確認画面で表示する!!
という難しい内容に挑戦しました。

〜GETとPOSTの違い〜

HTTPというのは
リクエストするとレスポンスが返ってくるという
通信の方式のことをいいます。
そしてHTTPのリクエストの種類のことをメソッドといいます。

ではこのことをふまえて
今日の内容にはいっていきましょう!

?「GETメソッドとPOSTメソッドの違いを説明するね。
  簡単にいうと、
  GETメソッドは情報を取得したいというリクエストで、
  POSTメソッドは情報を追加したいというリクエストだよ。」
姉妹「ほーほー」
ちなみに、主体はブラウザです。

リクエスト・レスポンスって?

今まではaタグでリンクしていたから、
GETメソッドをリクエストで送られていたのです。
だから今回は、ユーザーが情報を入力して
その情報を追加したレスポンス(確認画面)がほしいので
POSTメソッドを使うわけなんですね。

〜挑戦!〜

これを理解して、早速姉妹は各自HPをあさり始めました。
発見したHPは二人とも同じでした!
Sinatraでformを使ってPOSTしてみる
でもなかなか反映されません。
しかも姉妹二人とも同じところでつまづいていました。
※姉妹は確認画面のファイル名を「check.erb」にしています。

まず、myapp.rbにこのソースコードを書きます。
2015-08-28 15.50.59

この@emailや@messageは変数です。
またparamsというのを使うと、
パラメータを取得することができます。
今回でいえば、フォームで入力した値を
params[:パラメータ名]という使いかたで取得します。

はい、姉妹がつまづいたポイントその1!!
ここでpostに変更しているので
index.erbのほうの送信ボタンに貼ってあったリンクがあれば
そのaタグを消さないと
2015-08-28 15.51.58
こんなエラーが出てしまいます。
なぜなら、リンクがそのままだとボタンを押したときに
getのリクエストが送られて
「このcheckっていうページを取得したい!」
ってことになってしまうからです。
そのためSinatra側では、
「え、getのリクエストが送られてきてるのに
 get ‘/check’になってない!」
と混乱してしまって、エラーがでます。

続いて、index.erbのファイルの中身なのですが
フォームを作る際、formタグで中を囲っているはずです。
そのformタグにaction =“check” method=“POST”と書きます。
2015-08-28 15.53.30
これは、フォームになにか入力し、送信ボタンを押したときに
「送信されるデータの送信先がcheckで、
 checkにPOST(追加)してください!お願いします!」
というリクエストを送るためです。
また、
メールアドレスを入力してもらうというソースコードが
inputタグになっていますよね。そこに、name=“email”と書きます。
同じく、本文のほうのtextareaタグのところにも
name=“message”と書きます。
2015-08-28 16.04.04
こうしないと先ほど宣言した変数に、
入力した内容を代入することができなくなります。

ちなみにフォームを作っている時以外でも
postでなにか表示させたいときには
formタグを使ってactionやmethodを指定しましょう!

はい、つまづいたポイントその2!
ここで英語が苦手な妹登場です!! しょうもないミスをしました。
わかりますか。そうです。スペルミスです。
しかもemailでもmessageでもなく、nameのほうです。
1つだけ「neme」にしてしまったのです。
妹「スペルミスには気をつけよう…」

最後にcheck.erbの中身です。
入力した、メールアドレスと本文を表示させたいところに
<%=@email%>
<%=@message%>
と書きます。
2015-08-28 15.54.57
そうすればそれぞれの変数に代入された、
入力された内容が反映されるはずです!!

しかし、ここで問題発生!
妹「よっしゃー!!できたぞー!!!!」
姉「え……、さっきのエラーがでる」
妹「え!!なんで!!???」

さあここから間違い探しが始まりました。
でもほんとになにが違うのかがわからない!!

妹「method=“POST”のとこ、大文字じゃなきゃいけないとかある?」
姉「カタカタ…。いや小文字でも大丈夫だ。」
姉妹「うーーーーん。」
?「…文字拡大してみる?」
妹「ここの空白が全角だったりしてね!」
姉「いやーそんなことあるわけ!(とりあえず直す)
  …あれ、幅変わった。え!もしかして!!」
そしてリロードして送信ボタンを押すと……!!
姉妹「きたーーーーーーー!!!!!!!!」

…いやー、空白の全角、半角って怖いです。
わかりません。奇跡です。
姉「初歩的すぎて恥ずかしいよーー…」
よくある間違いらしいので気をつけましょう。

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