본문 바로가기

NIL2

named scope안에서 last 메소드를 사용했을 때의 문제 해결 얼마전 ruby on rails 개발을 하던중 이상한 점을 하나 발견했습니다. 빈 값을 반환해야할 named scope가 그 반대인 전체 레코드를 모두 반환하는 것이 그것이었습니다. 제가 의도했던 코드의 로직은 아주 간단했습니다. 1. 데이터를 필터링함 2. 제일 마지막 record를 가져옴 그래서 저는 아무 생각 없이 model에 named scope를 만들어 주었습니다. class Model scope :example, -> { where(name: 'haeree').last } end 그리고 실행 결과는 이러했습니다. Model.where(name: 'haeree') # => [] Model.example # => [모델1, 모델2, 모델3] 또잉??? 저는 첫번째 라인처럼 where함수가 반환하는.. 2019. 11. 28.
Ruby nil 처리하기 1. assignment operator ||= 오늘 rails로 개발 중 구글링을 하다가 이런 라인을 발견했습니다. number ||= 1 또잉 이게 무슨 연산자일까요? 1. ||는 다른 언어에서 보통 논리연산자 or로 사용됩니다. 2. x*=2 , x+=1 처럼 어떤 연산자 뒤에 =이 붙었다면 앞의 연산자로 연산을 시행 한 후 변수에 다시 대입을 해주는 복합 대입 연산자라고 볼 수 있습니다. 합리적인 추론에 의하면 ||= 는 or연산을 시행한 값을 number에 대입해주는 복합 대입 연산자라고 할 수 있겠네요. 3. ||의 피연산자에 true나 false가 아닌 nil과 객체가 왔을때 결과값은 다음과 같습니다. nil || 0 => 0 1 || 0 => 1 0 || 1 => 0 nil || nil =.. 2019. 11. 14.