일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- rails7
- 연습문제
- 인프런
- nico
- springboot
- Spring
- 日本語
- vscode
- Flutter
- html
- 일본어
- jsp
- 건담베이스
- ruby
- 単語
- C로 시작하는 컴퓨터 프로그래밍4판
- javascript
- Python
- 자바
- メソッド
- rails
- 디지몬
- DART
- 비즈니스일본어
- 一日一つメソッド
- 반다이몰
- 건담
- CSS
- Web
- java
Archives
- Today
- Total
AR삽질러
Rails 一日一つメソッド (Day47) Ruby - self 본문
728x90
Rails 一日一つメソッド (Day47) Ruby - self
1. selfとは
- selfは、Rubyのキーワードで、現在のオブジェクトを表したり、オブジェクトの属性に接近したり、メソッドを呼び出したり様々な機能を行う。
2. selfの例
2-1. オブジェクトに接近
class User
attr_accessor :name
def initializa(name)
@name = name
end
def display_name
puts "私の名前は #{self.name}です!"
end
end
user = User.new("Arang")
user.display_name # "私の名前は Arangです!"
self.nameは 現在のUserオブジェクトの name属性を表し、display_nameを呼び出したら、オブジェクトの名前の出力できる。
2-2. Userの数
class User
@@user_count = 0
def self.increment_user_count
@@user_count += 1
puts "Userの数は #{self.user_count}です!"
end
def self.user_count
@@user_count
end
end
User.increment_user_count # " User数は 5です!"
@@user_count = 0
- @@user_countを初期化し、全てのインスタンスで同じ値を持つことができる。
self.increment_user_count
- Userが登録される時に、@@user_countが 1増加し、その値を出力する。
self.user_count
- 登録されているUser数を返還する。
2-3) PasswordとPassword Confirmation検証
class User < ApplicationRecord
validate :password_confirmation_match
def password_confirmation_match
if self.password.present? && self.password_confirmation.present? && self.password != password_confirmation
errors.add(:password_confirmation, "Passwordと一致しません。。")
end
end
end
self.passwordとself.password_confirmationは、現在のオブジェクトの属性(Password、password _confiramtion)に接近し、現在のオブジェクトのPasswordと一致しない場合、errorsを発生させる。
728x90
반응형
LIST