2013-06-26 4 views
2
를 사용 belongs_to 처리 방법

다음과 같이 나는 중첩 된 자원이있는 경우 :레일 : 중첩 된 자원

resources :posts do 
    resources :comments 
end 

를 내가/게시물을 방문/새 1/의견/무엇에 post_id를 설정하는 가장 좋은 방법이야 댓글 모델?

답변

2

사용 form_for는 :

<%= form_for @comment, url: post_comments_path(@post) do |f| %> 

그것은 당신을 위해 URL을 올바르게 설정합니다 :

<%= form_for [@post, @comment] do |f| %> 

다른 방법으로는 장편을 사용할 수 있습니다.

컨트롤러 액션은 다음과 같아야합니다

def new 
    @post = Post.find(params[:post_id]) 
    @comment = @post.comments.build 
end 

def create 
    @post = Post.find(params[:post_id]) 
    @comment = @post.comments.build(params[:comment]) 
    if @comment.save 
    ... 
end 
+0

어떻게 내 컨트롤러가 같이해야합니까? –

+0

@rob_mccann : 이것을 명확히하기 위해 업데이트되었습니다. – PinnyM

+1

@rob_mccann 코멘트 모델에 자동으로'post_id'를 설정 해주는'@ post.comments.build'입니다. :) – nzifnab