Devise.2 新規登録画面
ここでは、新規登録の入力画面を実装する
2.1 Registration(新規登録)
<div class="col-md-4 offset-md-4"> <h2 class="text-center"><%= t('.sign_up') %></h2> <%= form_for(resource, as: resource_name, url: registration_path(resource_name)) do |f| %> <!--①---> <%= bootstrap_devise_error_messages! %> <!--②追加ココから--> <div class="form-group"> <%= f.label :名前 %> <%= f.text_field :username, autofocus: true, class: "form-control", placeholder: '50字以内'%> </div> <!-- 追加ココまで--> <div class="form-group"> <%= f.label :メールアドレス %> <%= f.email_field :email, autocomplete: 'email', class: 'form-control' ,placeholder: 'user@example.com(50字以内)' %> </div> <div class="form-group"> <%= f.label :パスワード %> <%= f.password_field :password, autocomplete: 'current-password', class: 'form-control', placeholder: '半角英数6~50字以内' %> <% if false %>-------------------------- <% if @minimum_password_length %> <small class="form-text text-muted"><%= t('devise.shared.minimum_password_length', count: @minimum_password_length) %></small> <% end %> --------------------------------<% end %> </div> <div class="form-group"> <%= f.label :確認用パスワード %> <%= f.password_field :password_confirmation, autocomplete: 'current-password', class: 'form-control', placeholder: '上記と同じパスワード' %> </div> <div class="form-group"> <%= f.submit t('.sign_up'), class: 'btn btn-primary' %> </div> <% end %> <%= render 'devise/shared/links' %> </div>
Deviseの内部では,それをresourceという名前で参照できるように統一しているとのこと.
asオプションでModelのインスタンスに対して,resource_nameという名前で参照できるようにしている.すなわち,キー:userを指定している.
params[resource_name]で参照できるようになる.
また,urlで指定したregistration_pathに対し,キーのresource_nameを()内に定義し,どのモデルのインスタンスなのかを明らかに,urlを明確にしている.
②:usernameカラムをUserテーブルに追加したので,入力フォームにも名前の入力欄を追加
2,2 deviseの日本語化
日本語になっているのは,次のgem
gem 'devise-i18n'
(このdevise-i18nはdeviseのメッセージなどを日本語にするようだ)と
config/locales
の下のja.yml
とdevise.views.ja.yml
のおかげ
2.3 メール本文
メール本文のコード
<p><%= t('.greeting', recipient: @email) %></p> <p><%= t('.instruction') %></p> <p><%= link_to t('.action'), confirmation_url(@resource, confirmation_token: @token) %></p>
新規登録画面から登録がうまくいくと次のメールが届くはず
タイトル:メールアドレス確認メール 本文 <mail address>様 以下のリンクをクリックし、メールアドレスの確認手続を完了させてください。 メールアドレスの確認