원서의 코드는 레일스 1.2를 기준으로 작성되었으나, 번역 진행 중 레일스 2.0이 출시되었습니다.
번역서에는 원서의 코드가 그대로 실려 있습니다.
레일스 2.0에 따라 변경된 코드와 본문 내용에서 수정할 내용은 이곳에 올립니다. (업데이트중)
책에 있는 예제를 그대로 실행하고 싶으시면, 아래 명령을 통해 레일스 1.2.6 버전을 설치(또는 다운그레이드)하시면 됩니다.
gem install rails --version 1.2.6 --include_dependenciesrails -v 명령을 사용해서 현재 설치되어 있는 레일스 버전을 확인해보세요.
데이터베이스로 mysql을 사용하려면
이라고 명시해주세요
config/database.yml에서 데이터베이스 패스워드등의 설정을 변경할 수 있습니다.
을 아래처럼 바꿔주세요
레일스 2.0에서는 부록 E에서 설명하고 있는, 리소스 중심 개발을 위해 기본적인 스캐폴드도 REST스럽게 작성해줍니다. (자세한 내용은 부록E 참조)
주의할것은 이런 리소스 기반 컨트롤러의 이름에도 기본적으로 복수형규칙이 적용된다는 것입니다.
예제에서, 컨트롤러 이름은 people_controller가 아닌 peoples_controller 입니다.
1
기본적으로 생성되는 메서드도 HTTP 메서드에 대응하도록 7개가 선언됩니다. 자세한 내용은 473쪽을 참조하세요
예제의 list 메서드는 레일스 2.0의 리소스 기반 스캐폴드에서는 index 메서드에 해당합니다.
list.rhtml 이 아닌 index.html.erb를 참조하시면 됩니다.
list.rhtml => index.html.erb
start_form_tag 와 end_form_tag 는 레일스 2.0에서 사라졌습니다(Deprecated) 아래와 같이 form_tag를 사용하세요
app/controllers/peoples_controller.rb
peoples_controller.rb에서 수정해야 할 메서드는 list가 아닌 index가 되겠습니다
주의할것은 11쪽 하단의 예제에서 사용되는 paginatation 플러그인(예제의 출력결과를 페이지 단위로 나눠주기 위해 사용되었던)이 사라졌다는 것(deprecated)입니다. 여기서는 레일스 2.0에서 권고하는 will_paginate 플러그인을 사용해보겠습니다.
위와 같이 플러그인을 설치한후 index메서드에 아래 코드를 입력합니다.
(스캐폴드가 만들어준 코드인 @peoples = People.find(:all) 는 삭제)
12쪽의 코드는 아래와 같이 바뀝니다
6장 , 240쪽의 '멀티 뷰' 보충설명에 언급된 대로 레일스 2.0에서는 뷰파일의 이름이 변경되었습니다
기본타입은 .html.erb 형식입니다. 스캐폴드를 생성하면
위 네개의 뷰 파일이 기본적으로 생성됩니다.
rails people -d mysql (레일스 애플리케이션 생성. 기본구조가 생성됩니다)
script/generate scaffold Person (스캐폴드 코드 자동 생성)
레일스 2.0에서는 종래의 Dynamic Scaffold라 불리우던 것이 사라졌습니다. 아래 플러그인(ActiveScaffold)을 설치하면 기존처럼 사용하실 수 있습니다.
업데이트 중