2013-10-11 1 views
0

2 가지 모델, 게시물 및 댓글이 있습니다. 게시물보기에서 새로운 액션에 댓글을 달도록하는 버튼을 만들고 싶습니다. 그래서 포스트 새로운 액션을 만들 :레일즈가 다른 컨트롤러의 액션을 호출합니다.

def comment 
    @post = Post.find(params[:id]) 

    redirect_to new_comment_path 
    end 

내가 코멘트 모델에서 post_id를 저장하려면, 그래서 새로운 코멘트 양식에 숨겨진 필드를 거라고 만들 :

<div class="field"> 
    <%= f.hidden_field :post_id, :value => @post.id %> 
    <%= f.label :body %><br /> 
    <%= f.text_field :body %> 
    </div> 

그러나 오류가 나타나 "호출 ID가 없음".

나는 아주 새롭다, 누군가는 도울 수 있는가? 아니면 다른 접근법을 사용해야합니까?

답변

1

글쎄, 값을 전달하기 위해 누락되었습니다. 저는이 방법으로 시도해 보았습니다.


편집 :

redirect_to :controller=>'comments', :action=>'new_comment', :post_id=>@post.id 

는 쿼리 문자열 객체를 전달 @post_id = params[:post_id]

+2

으로 받기? 나쁜 생각. 대신 ID를 전달하십시오. –

+0

라우팅 오류가 발생합니다 : "{: post_id => 1, : controller =>"comments ", : action =>"new_comment "}"와 일치하는 경로가 없습니다. 나는 경로에 이미 다음을 추가합니다. "resources : posts do \t 회원 do \t \t get : 의견 \t 끝 끝" –

관련 문제