发表评论的帖子。在帖子/节目中,当用户点击添加评论按钮时,服务器调用一个javascript函数,该函数应该将新的评论操作添加为部分:
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
问题是局部变量没有传递,我无法添加注释(它不会调用create)
答案 0 :(得分:2)
render *
永远不会在控制器中调用操作,即使是render :action => 'edit'
!它在每种情况下仅生成相应的部分。它有时可能令人困惑。
你快速解决问题的方法是通过ajax呼叫呼叫你的部分。
在您的观点中:
<div id="new_comment"></div>
在您的控制器中:
render :update do
replace 'news_comment', partial => 'comments/new'
end
希望得到这个帮助。