こんにちは、Nanayakuです。
今回は、登録フォームの作成で使うメソッドと処理の流れを解説します。
目次
登録の処理の流れ
User登録の各処理の流れが、画像の何番を通っているか確認します。
step
1新規登録ボタンを押し、UsersController(コントローラー)のnewアクションで@user(インスタンス変数)を生成し、モデルを作成します。
=>1・2・3・4・5・6
step
2@userをnew.html.erb(View)へ渡し、登録フォームを表示します。
=>7・8
step
3登録フォームの情報を送信すると、その値がcreateアクションに送られます。
=>1・2
step
4createアクションはデーターベースと通信し、データベースに情報を保存します。
=>3・4
step
5保存が成功したら、登録完了の画面が表示されます。
=>5・6・7・8
form_for
MVCについて詳しく解説で、出てきたform_for構文について解説します。
form_forからevdで囲んだ部分をformにするタグです。
form_for モデルオブジェクト do |f|
end
このように書くことで、このモデル(@userなど)のフォームを作ることが出来ます。
入力フォームには、様々な種類があります。
例)
- text_field・・・1行のテキストを書くフォーム
- text_area・・・複数行のテクストを書くフォーム
- number_field・・・数値を入力するフォームで数字以外入力出来ません
- password_field・・・パスワードを入力するフォームで入力したら自動的に隠されます
画像のようなフォームを作る時、以下のコードを書いました。
入力したデータを送信するには「f.submit」とし、ボタンが押されるとRailsが自動送信します。
送信したいデータは、入力フォームの前に「f.」を付けます。
resources
resourcesメソッドはroutes.rbファイル(ルーター)で使用します。
resourcesはRESTful(HTTPの通信)なURLを自動生成するメソッドです。
書き方は、以下のようになります。
resources :リソース名
リソース名はコントローラーのディレクトリ名です。
- index
- show
- new
- create
- edit
- update
- destroy
以上のルートをまとめて生成します。
createアクションの用語説明
createアクションで出てきた各用語についてで説明します。
redirect_to
redirect_toは指定されたページ(path)へ転送するメソッドです。
psthの確認をする場合は、「rails routes」とターミナルで実行すれば、確認が出来ます。
この時に出てくるPrefixが、「〇〇_path」の〇〇に該当します。
例えば、ユーザーの新規登録ページ(user#new)への転送する場合は、以下のようになります。
render
rednerは指定したURLのViewを返すメソッドです。
画像の条件分岐は、
保存が成功すれば「トップページへ転送する」
保存が失敗した場合「新規登録ページを返す」
と、なっています。
params
フォームで入力した情報を入れておく変数(シンボルで代入)のことです。
登録の流れは、登録フォームからデータを入力し、送信します。
その入力内容をparamsに格納し、そのデータをデータベースに保存します。
参考
Railsドキュメント・params
最後に
備忘録がわりに作ったので、間違っている所とかあったら、コメントくれると嬉しいです。