我在我的文档中添加了评论。提交评论时,评论通过 AJAX 部分加载/更新,其中包含新评论。在这个部分内部是一个链接,用于加载第二个部分(也由 ajax 加载),以提交对评论的评论(即评论子项)。
添加新评论时,部分会按预期重新加载新评论,但是如果不重新加载页面,加载第二个部分的链接将不起作用。我相信我需要将第一个部分委托给文档中的 div 或元素,以便 javascript(加载第二个部分)加载并执行,我该如何实现?这是我的设置:
创建.js.erb:
$('#ajax').html("<%= j comments(@document, @current_user) %>");
在评论控制器中创建操作
def create
....
respond_to do |format|
format.js
end
end
在评论部分内部,可以加载第二个部分,一个提交子评论的表单(即评论评论)。
链接以触发第二个部分/留下评论子项(在第一个部分内)
= link_to "Reply", {:controller => :documents, :action => :show}, { :method => :get, :remote => true}
显示.js.erb:
$('#comment_child_form_<%= @comment_parent.id %>').html("<%= j comment_child_form(@current_user, @document, @comment_parent) %>");
在文档控制器中显示操作
def show
....
respond_to do |format|
format.html
format.js
end
end
注意:我使用的是 Rails 3.2.12