niki12260714の日記

フリーランスのITエンジニアの呟き。

Ruby学習12日目:ルーティングの理解

流石に初日は全然進まなかった……何がつまずいたって、ルーティングにつまずいてました……


【やりたいこと】
・ログイン画面を作る
・ログイン画面に新規登録のリンクを張り、ユーザー登録画面に遷移する

ここで必要になるのって、
・ログイン画面
・ユーザー登録画面
の二画面なわけで、以前なら「login.html」と「createUser.html」なんかを用意して、リンクを張れば良かったわけで。
でもRubyはまずコントローラーから考えなきゃいけないわけですね。

・loginを制御するloginコントローラーを生成する
・このコントローラーはindexというビューを呼び出すので、view配下に「index.html.enb」というファイルを作成

f:id:niki12260714:20170915215452j:plain

※index.html.enbを呼び出したところ


・ここにルートを通さなきゃいけないので、routes.rbにルートの記述
・次にユーザー登録を行うのと、ログイン画面からpostした情報が正しいかを判定するためのusersコントローラーを生成する
・この時、生成画面となるnewという名前のビューを作ることが確定しているので、コントローラー生成コマンドのオプションで指定して一緒に作成してもらう(new.html.enbができる)

f:id:niki12260714:20170915215518j:plain

※new.html.enb。生成したコードから、まだ変更してない


・usersコントローラーに、loginからpostした値をチェックするためのcheckメソッドを作っておく
・usersのnewとcheckにルートを通す

f:id:niki12260714:20170915215640j:plain

これで2画面の作成と、その間にリンクを張るところまでできた……!

手を動かして、ようやくルーティングが分かってきた、かな?
明日はユーザー登録画面を作りますよー。