일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- activerecord
- rubyonrails
- fixture
- 삽질기
- Linux
- share
- uploader
- java
- Ruby on Rails
- Ruby
- programming
- 전화영어
- fileUploader
- apache spark
- carrierwave
- Scala
- max중첩
- transaction
- Shell
- mysql
- Hadoop
- RoR
- test
- Migration
- form
- 점심영어스터디
- TIP
- programmingTip
- minitest
- Rails
- Today
- Total
아침바라기의 이야기
[ROR][공유] Rails idoms 본문
오늘은 오래된 레일즈 이디엄 포스팅을 공유해보고자 한다.
이디엄은 코드레벨에서 자주 재사용하는 코딩 로직이라 할 수 있다.
이런 이디엄은 간결하면서도 (왠만하면) 가독성이 높고 효과적인 코드를 만들어준다.
두 가지 이디엄만 원문에서 뽑아서 포스팅 해본다.
(항목이나 내용은 좀 바뀔 수 있음)
1) 3항 연산자 대신 try (in erb)
api docs에 살펴보면, try는 파라미터로 넘기는 심볼로 된 이름의 메소드를 수행시킨다. 일반적인 메소드와는 달리 메소드가 없어도 NoSuchMethodException을 발생 시키지 않는다,
원래코드
<%= schedule.view_date.nil? ? '' : schedule.view_date.to_s %>
다시 쓴 코드
<%= schedule.view_date.try(:to_s) %>
참고 : http://api.rubyonrails.org/v3.0.8/classes/Object.html#method-i-try
2) object가 nil일때만 assign 하지 않는 방법
보통 if 문으로 체크해서 객체가 nil인지 판단하는데, 이방법을 쓰지 않고, ||= 연산자를 사용하면 nil이 아닐때만 할당할 수 있다.
원래코드
if !type
type = @schedule.type
end
다시 쓴 코드
type ||= @schedule.type
단 이 방법은 변수가 boolean값 일땐 사용하면 안된다.
boolean이면 nil과 false값이면 할당이 안된다.
이외에도 유용한 이디엄들을 소개 하고 있다.
원문은 이곳을 보자.
추가)
idiom까진 아니지만 일독하고 적용해보면 좋을 번역된(!!!) 글이 있다.
아래 링크를 참고하자.
알아두면 좋은 55가지 루비 기법: https://gist.github.com/nacyot/7624036
'개발이야기 > Ruby on Rails' 카테고리의 다른 글
[Rails] Minitest를 이용한 모델 테스트 팁 (0) | 2015.10.23 |
---|---|
[Rails] 트랜잭션 사용법 (0) | 2015.10.21 |
Carrierwave Uploder로 동적 이미지 version 생성법 (0) | 2015.10.07 |
[ROR] Carrierwave uploader 기본 사용법 (0) | 2015.10.04 |
rails에서 단일 Form에서 동적으로 여러개 객체를 넣는 방법 (0) | 2015.09.17 |