축하합니다, 레일즈에 탑승하셨어요! 이제 모든게 어떻게 돌아가는지 알아볼 시간이네요.
+축하합니다, 레일즈에 올라타셨어요! 이제 모든게 어떻게 돌아가는지 알아볼 시간이네요.
@@ -836,7 +832,7 @@ 6.9 새 포스트 만들기
create 액션은 폼에서 사용자가 제공한 정보로부터 레일즈가 만들어낸 param 해쉬를 기반해서, 새로운 Post 객체를 생성합니다. 새로운 글(post)가 성공적으로 저장된 이후에, create는 사용자 요청에 적합한 포멧을 반환합니다. 이 경우에 사용자는 show 액션으로 리다이렉트되어서 글(Post)이 성공적으로 작성된 것을 확인할 수 있습니다.
글의 저장이 성공하지 못하면, 데이터 검증 관련 에러를 발생하고 컨트롤러는 new 액션으로 사용자를 안내한 후에 에러 메세지를 출력해서 사용자에게 옳바르게 에러를 수정할 기회를 제공합니다.
-“Post was successfully created.”라는 메세지가 레일즈의 flash 해쉬에 저장된 후, (일반적으로 그냥 the flash라고 부릅니다.) 이 성공 메세지는 다른 액션에도 전달될수 있어서 사용자에게 진행 된 요청의 상태 정보를 제공합니다. create 경우에, 사용자는 Post(글)이 생성 중에는 볼수잇는 페이지가 없습니다. 왜냐하면 새로운 글(Post)가 저장된 후에는 곧바로 만들어진 글을 보여주는 페이지로 이동하기 때문이죠. Flash는 다음 액션에도 메세지를 보관하고 있습니다. 그래서, 사용자가 show 액션으로 리다이렉트 되어도 “Post was successfully created.”를 확인할 수 있게되죠.
+“Post was successfully created.”라는 메세지가 레일즈의 flash 해쉬에 저장된 후, (일반적으로 그냥 the flash라고 부릅니다.) 이 성공 메세지는 다른 액션에도 전달될수 있어서 사용자에게 진행 된 요청의 상태 정보를 제공합니다. create 경우에, 사용자는 Post(글)이 생성 중에는 볼 수 있는 페이지가 없습니다. 왜냐하면 새로운 글(Post)가 저장된 후에는 곧바로 만들어진 글을 보여주는 페이지로 이동하기 때문이죠. Flash는 다음 액션에도 메세지를 보관하고 있습니다. 그래서, 사용자가 show 액션으로 리다이렉트 되어도 “Post was successfully created.”를 확인할 수 있게되죠.
6.10 각각의 글 보여주기
인덱스 페이지에서 글(post) 하나를 위한 show 링크 클릭하면, 레일즈는 http://localhost:3000/posts/1 모양의 URL로 안내합니다. 레일즈는 이걸 해석해서 해당 리소스를 위한 show 액션을 호출하고, 파라미터의 id 에 1 담아서 넘깁니다. 여기 show 액션을 보세요.:
@@ -981,7 +977,7 @@ 7.1 모델 만들기
-이 파일은 이전에 보았던 post.rb 모델과 매우 비슷합니다. 다른 점은 belongs_to :post 가 존재하는 건데, 이건 액티브 레코드의 관계(association) 을 정의하는 규칙입니다. 이 가이드의 다음 색션에서 관계(association)에 대해서 조금 더 배우게 될 겁니다.
+이 파일은 이전에 보았던 post.rb 모델과 매우 비슷합니다. 다른 점은 belongs_to :post 가 존재하는 건데, 이건 액티브 레코드의 관계(association) 을 정의하는 규칙입니다. 이 가이드의 다음 섹션에서 관계(association)에 대해서 조금 더 배우게 될 겁니다.
모델과 더불어, 레일즈는 이와 대응하는 데이터베이스 테이블 생성 마이그레이션도 만듭니다.:
@@ -1063,7 +1059,7 @@
7.2 모델 관계 설정하기
이 두개의 정의는 자동으로 멋진 기능을 추가합니다. 예를 들자면, 글 정보를 가지고 있는 @post 인스턴스 변수를 가지고 있다면, @post.comments 코드를 통해서 글에 속한 모든 댓들(comment)의 배열을 가지고 올 수 있습니다.
-
home 컨트롤러 같이, 라우팅 규칙을 추가해서 레일즈가 comments로 가는 방법을 알게 만들 겁니다. config/routes.rb 파일을 다시 여세요. 발판(scaffold) 제너레이터에 의해서 파일의 꼭대기 근처에 posts를 위한 규칙이 자동으로 추가된 것을 볼 수 있을 꺼에요. resources :posts 를 다음과 같이 수정합니다. :
+
home 컨트롤러 같이, 라우팅 규칙을 추가해서 레일즈가 comments로 가는 방법을 알게 만들 겁니다. config/routes.rb 파일을 다시 여세요. 발판(scaffold) 제너레이터에 의해서 파일의 꼭대기 근처에 posts를 위한 규칙이 자동으로 추가된 것을 볼 수 있을 거에요. resources :posts 를 다음과 같이 수정합니다. :
@@ -1094,7 +1090,7 @@ 7.4 컨트롤러 만들기
test/unit/helpers/comments_helper_test.rb – 헬퍼를 위한 유닛 테스트
app/views/comments/ – 컨트롤러의 뷰는 여기에 저장됩니다.
-
어떠한 블로그와 같이, 우리의 독자는 글을 읽은 후에 그들의 댓글을 만들 겁니다. 그리고 댓글을 한번 추가하고, 그 댓글을 확인하기 위해서 글(post)을 보는 페이지로 돌아갈 꺼에요. 이러한 책무를 가진 우리의 CommentController는 댓글 생성하는 메소드와 스팸 댓글을 지우는 기능을 제공해야 합니다.
+
어떠한 블로그와 같이, 우리의 독자는 글을 읽은 후에 그들의 댓글을 만들 겁니다. 그리고 댓글을 한번 추가하고, 그 댓글을 확인하기 위해서 글(post)을 보는 페이지로 돌아갈 거에요. 이러한 책무를 가진 우리의 CommentController는 댓글 생성하는 메소드와 스팸 댓글을 지우는 기능을 제공해야 합니다.
그래서, 우선 해당 글(Post)을 보여주는 템플릿(/app/views/posts/show.html.erb)을 새로운 댓글 만들기와 연결 시킬 것입니다.:
@@ -1153,7 +1149,7 @@
7.4 컨트롤러 만들기
글(post)를 위한 컨트롤러보다 약간 복잡하게 보일 겁니다. 이러한 약간의 복잡함은 여러분이 설정한 중첩(nested) 라우팅 설정의 결과이기도 합니다.; 댓글(comment)를 위한 각 요청은 해당 댓글이 속하게 될 글(post)를 따라갑니다. 그래서 첫 부분에서 Post(글) 모델을 찾는 코드가 있죠.
-
덫붙여서, 관계를 위한 메소드는 몇 가지 장점을 가지고 옵니다. 우리는 댓글을 만들고 저장하기 위해서 @post.comments 상의 create 메소드를 사용합니다. 그런데, 이 메소드는 글과 댓글(comment)을 자동으로 연결해서, 댓글을 특정한 글(post)에 속하게 만듭니다.
+
덧붙여서, 관계를 위한 메소드는 몇 가지 장점을 가지고 옵니다. 우리는 댓글을 만들고 저장하기 위해서 @post.comments 상의 create 메소드를 사용합니다. 그런데, 이 메소드는 글과 댓글(comment)을 자동으로 연결해서, 댓글을 특정한 글(post)에 속하게 만듭니다.
새로운 댓글을 만들고 나면, 컨트롤러는 사용자를 post_path(@post) 헬퍼를 이용해서 원래의 글 페이지로 보냅니다. 이미 우리가 봤듯이, 이 호출은 PostsController의 show 액션을 호출해서 사용자에게 show.html.erb 템플릿의 출력 결과를 보여줍니다. 이 화면에서 사용자가 작성한 댓글을 보여줄 수 있죠. 자 이제, app/views/posts/show.html.erb 를 붙여 봅시다.
@@ -1662,7 +1658,7 @@
12 뷰 헬퍼
13 다음에는 무엇?
-
이제, 여러분의 첫번째 레일즈 어플리케이션을 경험하였습니다. 실험과 업데이트는 자유입니다. 그러나 모든 것을 도움 없이 할필요는 없습니다. 레일즈를 가지고 사용하는데 도움이 필요하면, 여기 자료와 지원들이 여러분을 도와줄 수 있습니다.
+
이제, 여러분의 첫번째 레일즈 어플리케이션을 경험하였습니다. 실험과 업데이트는 자유입니다. 그러나 모든 것을 도움 없이 할 필요는 없습니다. 레일즈를 가지고 사용하는데 도움이 필요하면, 여기 자료와 지원들이 여러분을 도와줄 수 있습니다.
14 설정 사로 잡기(Configuration Gotchas)
-
레일즈와 함께하는데 가장 쉬운 방법은 모든 외부 데이터를 UTF-8을 이용하는 것입니다. UTF-8을 사용하지 않으면, 루비 라이브러리와 레일즈는 자주 여러분의 원본 데이터를 UTF-8로 변환할 것 입니다. 그러나 이 과정은 늘 믿음직 스럽게 동작하지만은 앖습니다. 그래서 모든 외부 데이터가 UTF-8인 편이 좀 더 확실합니다.
+
레일즈와 함께하는데 가장 쉬운 방법은 모든 외부 데이터를 UTF-8을 이용하는 것입니다. UTF-8을 사용하지 않으면, 루비 라이브러리와 레일즈는 자주 여러분의 원본 데이터를 UTF-8로 변환할 것 입니다. 그러나 이 과정은 늘 믿음직스럽게 동작하지만은 않습니다. 그래서 모든 외부 데이터가 UTF-8인 편이 좀 더 확실합니다.
만약 이 영역에서 여러분이 실수 했다면, 일반적으로 나타나는 대부분의 증상은 브라우저 상에서 보이는 데이터들이 물음표를 동반한 검은 다이어몬드로 표시되는 것 입니다. 다른 일반적인 증상은 “ü” 글자 대신에 “ü” 같은 글자가 보입니다. 레일즈는 이러한 문제들을 자동으로 해결하려는 내부 처리 단계를 많이 가지고 있습니다. 그럼에도 불구하고, 외부 데이터를 UTF-8 로 저장하지 않으면, 때때로 레일즈가 자동으로 처리할 수 없는 이런 종류의 문제들이 발생합니다.
비 UTF-8 데이터를 만들어내는 두가지 흔한 원인: