2011-05-09 6 views
0

의견이있는 게시물이 있습니다. 사용자가 서버가 부분적으로 새 의견 조치를 추가해야합니다 자바 스크립트 함수를 호출 주석 추가 버튼을 클릭 후/쇼에 :다른 컨트롤러보기 부분보기 (레일 3)

render 'comments/new' 

$("#newcomment").live("click",function() { $("#addcomment").load("<%= url_for :controller => 'comments', :action => 'new', :locals => {:parent_id => @post.parent_id} %>") 

def new 
    @comment = Comment.new(:parent_id => params[:parent_id]) 
    render :partial => "form", :layout => false 
end 

new view: 
render "form" # form is the add comment form 

문제는 지역 변수가 전달되지 않도록 내가 할 수있는 것입니다 댓글을 달지 마십시오 (전화를 걸면 안됨)

답변

2

render * 심지어 컨트롤러에서 작업을 호출하지 마십시오. render :action => 'edit'! 모든 경우에 해당 부분 만 생성합니다. 때로는 혼란 스러울 수도 있습니다.

신속하게 문제를 해결하기 위해 수행해야 할 작업은 아약스 호출을 통해 부분을 호출하는 것입니다. 귀하의 의견에

:

<div id="new_comment"></div> 

컨트롤러에서 :

render :update do 
    replace 'news_comment', partial => 'comments/new' 
end 

희망이 도움이됩니다.

+1

버튼 클릭시 '렌더링 : 업데이트'를 어떻게 호출합니까? 또한 쇼 작업에 배치하거나 자체적으로 배치합니까? 감사. – John

+0

이미 로직이 있다면 컨트롤러에 넣는 것이 좋습니다. 버튼 태그에 {: remote => true}를 추가하여 버튼에 대해이 작업을 수행 할 수 있습니다. – Hartator

+0

독자적인 행동을 의미합니까? – John