pat coding
[ruby] method 본문
728x90
자주사용하는 메소드정리!
1. scan
- 문자열을 나눠서 배열로 저장
a = "cruel world"
a.scan(/\w+/) #=> ["cruel", "world"]
a.scan(/.../) #=> ["cru", "el ", "wor"]
a.scan(/(...)/) #=> [["cru"], ["el "], ["wor"]]
a.scan(/(..)(..)/) #=> [["cr", "ue"], ["l ", "wo"]]
2. valid?
- 오류를 확인하는 메소드
my_person = Person.create(params[:person])
my_person.valid?
# => true
my_person.errors.add('login', 'can not be empty') if my_person.login == ''
my_person.valid?
# => false
3. downcase, upcase, capitalize
- 대문자, 소문자
puts "heLLo James!".downcase #=> "hello james!"
puts "hello James! I'm Demi".upcase #=> HELLO JAMES! I'M DEMI
puts "hello James! I'm Demi".capitalize #=> Hello james! i'm demi
새 string을 return받지 않고 객체 자체에서 바꾸고 싶다면 뒤에 !를 추가하면 됩니다.
string = "hello James!"
string.downcase!
puts string #=> "hello james!"
4. uniq
- 해시, 배열에서 고유한 값인지 확인
# 배열
a = [ "a", "a", "b", "b", "c" ]
a.uniq # => ["a", "b", "c"]
b = [["student","sam"], ["student","george"], ["teacher","matz"]]
b.uniq { |s| s.first } # => [["student", "sam"], ["teacher", "matz"]]
# 해시
array_of_hashes = [ {'a' => 1, 'b' => 2 , 'c' => 3} ,
{'a' => 4, 'b' => 5 , 'c' => 3},
{'a' => 6, 'b' => 5 , 'c' => 3} ]
array_of_hashes.map { |h| h['a'] }.uniq # => [1, 4, 6]
array_of_hashes.map { |h| h['b'] }.uniq # => [2, 5]
array_of_hashes.map { |h| h['c'] }.uniq # => [3]
5. match
- 문자열 일치하는 것 반환
'hello'.match('(.)\1') #=> #<MatchData "ll" 1:"l">
'hello'.match('(.)\1')[0] #=> "ll"
'hello'.match(/(.)\1/)[0] #=> "ll"
'hello'.match(/(.)\1/, 3) #=> nil
'hello'.match('xx') #=> nil
6. self
- 기본 객체 설정
class Ghost
def reflect
self
end
end
g = Ghost.new
g.reflect == g # => true
class Ghost
def self.reflect
self
end
end
Ghost.reflect == Ghost # => true
module Ghost
def self.reflect
self
end
end
Ghost.reflect == Ghost # => true
7. validates_presence_of
- 모델에서 저장시 지정된 속성이 비어 있지 않은지 확인
class Person < ActiveRecord::Base
validates_presence_of :first_name
end
8. save, save!
# 모델을 저장할때
save = true or false 반환
save! = ActiveRecord 오류 발생
728x90
'Language > RubyOnRails' 카테고리의 다른 글
[Ruby]예외 처리 (0) | 2020.03.09 |
---|---|
[Ruby] Array 정리 (0) | 2020.02.04 |
rails controller (0) | 2020.01.09 |
[Ruby excel] write_xlsx 를 통한 엑셀 설정 (0) | 2020.01.07 |
Active Record의 정의 (1) | 2019.12.24 |
Comments