일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- transaction
- minitest
- fixture
- 전화영어
- mysql
- fileUploader
- max중첩
- 삽질기
- Ruby
- Hadoop
- test
- carrierwave
- share
- RoR
- java
- TIP
- activerecord
- form
- programming
- Scala
- Ruby on Rails
- apache spark
- programmingTip
- Rails
- rubyonrails
- uploader
- 점심영어스터디
- Shell
- Linux
- Migration
- Today
- Total
목록Rails (4)
아침바라기의 이야기
모델에 관계 설정은 없고, id 값을 가져다 써야할 땐 어떻게 할까? 이럴땐 ActiveRecord::FixtureSet.identify() 를 사용할 수 있다. Fixture의 label로 레일즈가 어떤 id를 넣었는지 알수 있다. 아래 처럼 사용하면 된다. # users.yml daniel: name: Daniel job_id:
비슷한 주제인 Mini test를 이용한 모델 테스트 팁은 이전에 한번 다뤘다. 주의점이 한가지 있다. Fixture는 개수가 많아지면 속도가 느려진다. 현재 DB의 데이터를 모두 지웠다가 Fixture 데이터를 넣고 테스트가 완료 되면 롤백한다. 이 과정을 진행하다보니 기존에 데이터가 많거나 Fixture 수가 늘어나면 늘어날수록 느려진다. 이걸 해결하려면 test_helper.rb에서 class ActiveSupport::TestCase fixtures :all 이 부분을 수정하는 것이 좋다. 각 테스트 케이스 setup 에서 fixture를 로딩하도록 만들거나 헬퍼를 통해서 필요한 것만 로딩하는 걸 만들어주도록 한다. Fixture는 YML 형태로 보통 사용한다아래는 예제다. # users.yml ..
지난번 포스트에 이어 다시한번 carrierwave gem를 다룬다. 최근 필자는 난감한 상황에 봉착했다. 데드라인이 얼마 안남은 프로젝트에서 미를 추구하는 우리의 아름다운 분들이 웹 페이지마다 썸네일 크기를 제각각으로 만들었다. 물론 거기에 디바이스 종류(PC, 모바일기기 등등)에 따라 썸네일 사이즈가 요동치는 것은 물론이다. (이른바 썸네일 지옥이 시작된것이니...OTL) Carrierwave에서 제공하는 업로더 예제를 그대로 사용해보려고 했다. 이리저리 따져봤다. 썸네일 1개당 이미지 업로더 클래스가 1개. 그리고 기기별로 version 추가. 기기별 version 추가는 어차피 피할 수 없다. (기기별 대응은 하다보면 더러워질 수 밖에 .-_-) 그러면, 기기별로 version을 만드는건 피할 수..
오늘은 오래된 레일즈 이디엄 포스팅을 공유해보고자 한다. 이디엄은 코드레벨에서 자주 재사용하는 코딩 로직이라 할 수 있다. 이런 이디엄은 간결하면서도 (왠만하면) 가독성이 높고 효과적인 코드를 만들어준다. 두 가지 이디엄만 원문에서 뽑아서 포스팅 해본다.(항목이나 내용은 좀 바뀔 수 있음) 1) 3항 연산자 대신 try (in erb) api docs에 살펴보면, try는 파라미터로 넘기는 심볼로 된 이름의 메소드를 수행시킨다. 일반적인 메소드와는 달리 메소드가 없어도 NoSuchMethodException을 발생 시키지 않는다, 원래코드 다시 쓴 코드 참고 : http://api.rubyonrails.org/v3.0.8/classes/Object.html#method-i-try 2) object가 ni..