일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |
- 一日一つメソッド
- rails
- 건담베이스
- 건담
- Python
- javascript
- ruby
- springboot
- jsp
- C로 시작하는 컴퓨터 프로그래밍4판
- Web
- html
- vscode
- 単語
- Spring
- 비즈니스일본어
- 日本語
- 반다이몰
- CSS
- 일본어
- 인프런
- java
- メソッド
- 자바
- DART
- 디지몬
- 연습문제
- nico
- rails7
- Flutter
- Today
- Total
AR삽질러
Rails 一日一つメソッド (Day6) new, persisted?メソッド 본문
Rails 一日一つメソッド (Day6) new, persistedメソッド
1. newメソッド
'new' メソッドはRailsのActiveRecordで使われ、新しいモデルインスタンスを生成する。
注意 : 'new' メソッドは単純にメモリーにオブジェクトを生成するだけで、DabaBaseには保存されない。
newメソッド例題
def new
@user = User.new
end
- newメソッドは Modelでオブジェクトを生成しDabaBaseに保存されないまま、ユーザーに表示される。
User.newの動作方法
1. オブジェクト生成
- 'User.new' は'User'モデルでインスタンスを生成するまだ、保存されない。
2. 属性初期化
- 'new' メソッドでパラメータを渡すと、オブジェクトの属性を初期化でくる。
3. DabaBaseとの独立性
- 'new' メソッドで生成されたオブジェクトは 'ActiveRecord'の 'save' メソッドを呼び出まではDabaBaseに保存されない。
2. persisted?メソッド
'psersisted?' メソッドは ActiveRecordにオブジェクトがDabaBaseにすでに保存されているかどうかを示す。
オブジェクトが存在する場合 : trueリターン
オブジェクトが存在しない場合 : falseリターン
psersisted?メソッド例題
def create
@user = User.create(user_param)
if @user.persisted?
redirect_to user_path(@user), notice: 'ユーザーが登録されました。'
else
render :new
end
end
@user.persisted?
- 'User' オブジェクトがDabaBaseに生成されていることを確認する。
- @userがDabaBaseに保存された時は、(persisted? = true)、'redirect_to user_pat(@user)' を返す。
- 失敗した時は、(persisted? = false) を返し、render :newnに戻る。
3. has_secure_password
has_secure_passwordはActiveRecordモデルで使われるメソッドで、Passwordセキュリティなどの機能を提供する。
has_secure_passwordメソッドは 'bcrypt' ライブラリを使ってPasswordを安全に処理する。
has_secure_password例題
class User < ApplicationRecord
has_secure_password
end
gem "bcrypt", "3.1.18"
- ユーザモデルにhas_secure_passwordを追加することで、パスワード管理に関する上記の機能がユーザモデルに自動的に追加される。このため、データベースのusersテーブルにはpassword_digestというフィールドが存在する必要があり、 has_secure_passwordは、このpassword_digestフィールドにハッシュされたパスワードを保存する。
'Ruby > RubyOnRails-日本語' 카테고리의 다른 글
初めてのRuby on Rails ルーティング、アクション、View, ERB (2) (1) | 2023.12.27 |
---|---|
初めてのRuby on Rails Controller作成, トラブルシューティング (1) (0) | 2023.12.27 |
Rails 一日一つメソッド (Day5) destroyメソッド (0) | 2023.12.25 |
Rails 一日一つメソッド (Day4) createメソッド (0) | 2023.12.24 |
Rails 一日一つメソッド (Day3) all, find_dy, renderメソッド (1) | 2023.12.23 |