【58日目】【1日20分のRailsチュートリアル】【第7章】ユーザー登録用のフォームを作成する
今日は「7.2.1 form_forを使用するから。
7.2.1 form_forを使用する
ユーザー登録ページで重要な点は、ユーザー登録に欠かせない情報を入力するためのformです。
formタグのことですね。
これを行うには、Railsでform_forヘルパーメソッドを使用します。
メソッドで簡単に作れるのかな。
まずnewアクションに@user
変数を追加する。
app/controllers/users_controller.rb
def new @user = User.new end
ビューにフォームを追加してCSSで見た目整える。
app/views/users/new.html.erb
<% provide(:title, 'Sign up') %> <h1>Sign up</h1> <div class="row"> <div class="col-md-6 col-md-offset-3"> <%= form_for(@user) do |f| %> <%= f.label :name %> <%= f.text_field :name %> <%= f.label :email %> <%= f.email_field :email %> <%= f.label :password %> <%= f.password_field :password %> <%= f.label :password_confirmation, "Confirmation" %> <%= f.password_field :password_confirmation %> <%= f.submit "Create my account", class: "btn btn-primary" %> <% end %> </div> </div>
app/assets/stylesheets/custom.css.scss
: /* forms */ input, textarea, select, .uneditable-input { border: 1px solid #bbb; width: 100%; margin-bottom: 15px; @include box_sizing; } input { height: auto !important; }
ユーザー登録ページの見た目確認してみよう。
サーバーを起動して
$ rails server -b $IP -p $PORT
<ローカルアドレス>/signup
にアクセス。
おー、ユーザー登録ページだ!
7.2.2 フォームHTML
リスト7.13で定義したフォームを理解するために、小さなコードに分けて考えてみましょう。
まずは、埋め込みRubyが使われているform_forからendまでの外側の構造を読み解いていきます。
form_for
メソッドからどう<form>
タグが生成されるのかを一つ一つ解説。
ユーザー作成の場合、どうしてaction="/users"
を設定するのかが気になる。これについてはまたこの項以降で説明あるそう。
次は「7.3 ユーザー登録失敗」から。