让另一个控制器查看部分(Rails 3)

时间:2011-05-09 19:45:23

标签: ruby-on-rails ruby-on-rails-3 partial-views

发表评论的帖子。在帖子/节目中,当用户点击添加评论按钮时,服务器调用一个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)

1 个答案:

答案 0 :(得分:2)

render *永远不会在控制器中调用操作,即使是render :action => 'edit'!它在每种情况下仅生成相应的部分。它有时可能令人困惑。

你快速解决问题的方法是通过ajax呼叫呼叫你的部分。

在您的观点中:

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

在您的控制器中:

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

希望得到这个帮助。