2012-08-30 2 views
0

레일 3에서 새롭고 루비 사이트의 가이드에 따라 첫 번째 블로그 응용 프로그램을 빌드합니다.레일에 중첩 된 모델에 대한 CRUD 작업 3

그러나 앱에서는 모델 "메모"에 편집/업데이트/삭제 작업이 없습니다.

그런 다음 추가하려고했지만 실패했습니다. 대신 그냥 "코멘트"모델에 대한 모델을 생성의

, 내가 사용하는 "코멘트"모델의 발판 만들 :

rails generate scaffold Comment commenter:string body:text post:references 

을 그리고 post.show 페이지를, I는 다음과 같이 수정 :

그들은 나열되어 있습니다,하지만 난 '수정'을 클릭하거나 '삭제'할 때 링크가로 이동하려고합니다 :

http://localhost:3000/comments/1 

그러면 오류가 발생합니다.

No route matches [GET] "/comments/3/edit" or 

No route matches [DELETE] "/comments/3" 

나는 지금 모른다.

내가 배울 수있는 제품의 데모가 있습니까?


업데이트 : routes.rb에서

:

resources :posts do 
    resources :comments 
end 

참고 : 자신에 의해 수동으로 털어되어 다음과 같습니다. 레일에 의해 생성

설정은 다음과 같습니다

resources :posts 
resources :comments 

나는 그것이 새 코멘트를 작성하기위한 주석 빌드 형태로, 포스트 URL이 "/ 글/1/의견"을해야한다는 것입니다 수정 왜, 그렇지 않으면 포스트 url은 게시물과 댓글을 연결하지 않을 "/ comments"가됩니다.

+0

는 방법 routes.rb을한다 어떻게 생겼어? – apneadiving

+0

@apneadiving : 내 소식을 업데이트합니다. – hguser

+0

@hguser : 대답은 – Samiron

답변

1

routes을 구성 했습니까? 귀하의 config/routes.rb 당신은 또한 당신의 자원 구성에 따라 응용 프로그램에 사용할 수있는 URL이 무엇인지 볼 수 rake routes를 실행할 수 있습니다

resources :comments 

포함해야합니다.

편집 : 당신이 this video on youtube을 시도 할 수데모

. 그러나 이것에 관해 웹에서 많은 비디오를 찾을 수 있습니다.

편집 :

그래서 당신은 두 가지 방법으로 귀하의 코멘트 리소스를 필요로 보인다. 게시물의 중첩 된 리소스와 최상위 리소스로도 모두 가능합니다.당신이 함께 두 가지를 가질 수 있도록 자료를 중첩 한 이후 다음

resources :posts do 
    resources :comments 
end 
resources :comments 
+0

입니다. 이전 주석을 삭제하지 말았어야합니다. 대답은 단순한 복사/붙여 넣기입니다. – apneadiving

+0

@hguser가 스캐 폴드를 생성 중이므로 라우트 파일을 자동으로 업데이트합니다. –

+0

이상적인 경우입니다. 그러나 경로 오류는 경로 구성과 완전히 관련됩니다. 그래서 그는 그의 길에 어떤 문제가있을 것입니다. – Samiron

0

, 당신은 사용해야합니다

edit_post_comment_path(@post, comment) 

도 명확하게하기 위해 :

<td><%= link_to 'Edit', edit_post_comment_path(@post, comment) %></td> 
<td><%= link_to 'Destroy', post_comment_path(@post, comment), confirm: 'Are you sure?', method: :delete %></td> 
관련 문제