본문 바로가기

Ruby on Rails

'Ruby on Rails 초고속웹개발의 시작' 에서 코드 오류를 고치다

'Ruby on Rails 초고속웹개발의 시작' 이 책은 루비를 처음 공부하는 사람이 보기에 딱 좋은 부담도 없고 설명도 나름 자세한 책이다.

지금은 '레일스 레시피', '레일스와 함께 하는 애자일 웹개발' '프로그래밍 루비'까지 국내 번역서는 다 사서보고 있지만 아직 내 수준엔 저 책이 딱인거 같다.

저 책의 코드를 혼자서도 머리속에서 짜내어 재현할 수 있다면 반은 레일스 개발자 다 되었다고 해도되지 않을까 싶다 ^^

암튼 저 책에서 예전에 오탈자 수정하는 게시물을 한빛 출판사 홈에 올린적이 있는데, 오늘은 로직오류 코드를 수정한 것을 하나 올렸다

그 책은 예제로 사진슬라이드쇼 보기 프로그램을 짜는것으로 진행하는데, 사진들의 카테고리를 지정할 수 있도록 되어 있다.

카테고리라는것이, 포유류는 동물에 포함 되듯이 어느것이 다른 것에 포함 될 수 도 있는 것이기 때문에, 카테고리 테이블은 같은 테이블내의 다른 레코드를 부모카테고리로 삼을 수가 있도록 짜야한다고 책에선 정해놓고 진행하고 있다.

예를 들어 포유류라는 카테고리를 수정하러 들어가면 아래쪽에 셀렉트박스가 있어서 현재 카테고리 테이블에들어 있는 모든 카테고리를 부모카테고리로 설정할 수 있도록 하고 있는데, 문제는 거기에 포유류 자신도 나온다는 것이다.

자신을 부모로 설정한다는게 말이되지가 않아서 그런지 에러도 바로 나주신다.
이거 레일스 공부시작한 초기에 알았지만 수정할 수가 없었다 --;


코드는 수정한거 별로 없지만 골뱅이 붙은 놈이 대체 무슨 값들을 가지고 있을지 콜론 붙은 놈은 뭔지 감이 안오던 그때는 아무리 해도 안됐었다.

오늘도 고생한건 다른게 아니라 sql의 비교연산자를 까먹어서 같은건 = 인데 다른건 not 인지 =!인지 다 써 봐도 안되는거다. 나중에 네선생에게 물어보니 not like --;;

그렇다. 몇 년전엔 나도 그걸 썼었다. 그런데 그게 그렇게 까맣게 생각이 안나다니

아무튼 뿌듯하게 한빛출판사 홈에도 올리고 내일은 와인이나 한잔 사줘야겠다 나한테.



아, 레일스는 참 신기한 기능이 많은데 그중에 acts_as_tree라는 액티브 레코드의 기능이 있다.
이게 뭔지 설명하는거보단 음.. 이걸 쓰면 이런게 된단다.
카테고리 테이블에서 포유류가 동물에 포함되는 것으로 설정이 되어 있다면 동물 레코드를 지우면 포유류레코드가 같이 지워진다. ^^
(사실 안해봤었는데 지금 해보니 정말 지워질쎄!)



Ruby on Rails
브루스 테이트 외 지음, 김경준 옮김, 박상길 감수/한빛미디어

알라딘 Thanks To Blogger 가입해서 하나 달아봤습니다 ^^