学んだ事
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を返す