読者です 読者をやめる 読者になる 読者になる

Ruby (on Rails)入門 ~現在、勉強中(2015年6月開始)~

Ruby、Ruby on Railsを勉強中。参考書を読んだり、ネット情報を読むだけでは忘れてしまうのでメモする。

【Ruby (on Rails)プログラミング入門メモ#103】メールアドレスとパスワードを使ったログイン機能を作るサンプル ~①ユーザー登録~

Ruby Ruby (on Rails)プログラミング入門 Ruby on Rails サンプル プログラミング 入門

この記事を読んでわかること

  • メールアドレスとパスワードを使ったログイン機能の作成方法の一部(ユーザー登録)

試す前に

railsでアプリを作っておくこと

1. bcryptインストール

gemでbcryptをインストールします。

Gemfileを開きます。
bcryptに関する行はコメントアウトされているので、 コメントアウトを削除します。

bcryptに関する行がなければ、下記追記します。

# Use ActiveModel has_secure_password
gem 'bcrypt', '~> 3.1.7'

2. Userモデル作成

①モデル作成
rails g scaffold User email:string password_digest:string
マイグレーション
rake db:migrate
③バリデーションを追加&認証用の設定

user.rbを開き、下記のとおりに編集します。

class User < ActiveRecord::Base
  validates :email, presence: true, uniqueness: true # バリデーション
  has_secure_password # 認証用の設定
end

3. Viewの修正

新規作成、更新時のフォームを修正します。

修正で下記のことをしています。 - パスワード入力欄の修正 - パスワード(確認)入力欄の追加

<%= form_for(@user) do |f| %>
  <% if @user.errors.any? %>
    <div id="error_explanation">
      <h2><%= pluralize(@user.errors.count, "error") %> prohibited this user from being saved:</h2>

      <ul>
      <% @user.errors.full_messages.each do |message| %>
        <li><%= message %></li>
      <% end %>
      </ul>
    </div>
  <% end %>

  <div class="field">
    <%= f.label :email %><br>
    <%= f.text_field :email %>
  </div>
  <div class="field">
    <%= f.label :password, 'パスワード' %><br>
    <%= f.password_field :password %>
  </div>
  <div class="field">
    <%= f.label :password_confirmation, 'パスワード(確認)' %><br>
    <%= f.password_field :password_confirmation %>
  </div>
  <div class="actions">
    <%= f.submit %>
  </div>
<% end %>

4. Controllerの修正

新規登録、更新時にcreateアクション及びupdateアクションに
送られてくるパラメータで、許可するパラメータを変更します。

users_controller.rbを開き、 デフォルトで作成されているuser_paramsメソッドを下記のとおりに修正します。

def user_params
  params.require(:user).permit(:email, :password)
end

5. 確認

アプリを起動し、新規ユーザー登録をしてみます。 f:id:fjswkun:20160420143258p:plain

f:id:fjswkun:20160420143309p:plain

終わりに

次はログイン画面を作る

勉強で使用中書籍

・他のプログラミング言語を使える人向け。[現在使用中] プログラミング初心者には向かない。

・たのしいRubyを読み終えたら勉強するつもり

初めてのRuby

初めてのRuby

Railsを勉強するなら、まずはこれがいいらしい

RailsによるアジャイルWebアプリケーション開発 第4版

RailsによるアジャイルWebアプリケーション開発 第4版