Help us understand the problem. What is going on with this article?

Rails チュートリアル_6章_学習メモ

学んだ事

findメソッドとfind_byメソッドの違い

  • findメソッドはidを起点として情報を探すが、id以外からは検索出来ない。
  • find_byはid以外も可能で、他のカラムで探す際に使用する。

%w[]

配列を作成する際に便利な方法
%w[4 4 5 6 4 ]["4","4","5"...]

メールアドレスの正規表現

VALID_EMAIL_REGEX = /\A[\w+\-.]+@[a-z\d\-.]+\.[a-z]+\z/i
これをformat:{with:VALID_EMAIL_REGEX}と記述する
一旦、メールの表記検証する際はこの書き方を丸暗記した方が良さそう。

一意性の検証→今もよくわかってない

重複を許可しないようにする

dupメソッド

同じ属性を持つデータを複製するためのメソッド
重複アドレスを検証する際に用いる

qiita.rb
test "email addresses should be unique" do
    duplicate_user = @user.dup
    @user.save
    assert_not duplicate_user.valid?
  end

データベースの一意性を保証する

新たにuserモデルにマイグレーションファイルを作成し、add_indexメソッドを使って一意性を強制させる
リスト6.29参照

authenticateメソッド

引数に渡された文字列(パスワード)をハッシュ化した値と、データベース内にあるpassword_digestカラムの値を比較します。一致していえば、ture、間違っていれば、falseを返す

sugya
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away