Javascript RubyonRails实现Ajax帖子和评论

Javascript RubyonRails实现Ajax帖子和评论,javascript,ruby-on-rails,ruby,ajax,Javascript,Ruby On Rails,Ruby,Ajax,有人能帮我吗?我正在尝试将AJAX应用到我的项目中,我需要做的应该很简单,但对我来说,这简直是疯了。 我的想法是当用户添加新评论时出现 无需重新加载页面,请按下面的“我的控制器”、“视图”和“路线”进行操作。啊,为了删除,我做了一些有效的事情 这里是/app/controller/comments\u controller.rb Post app/controller/posts_controller.rb Views Comments/app/Views/Comments/_templat

有人能帮我吗?我正在尝试将AJAX应用到我的项目中,我需要做的应该很简单,但对我来说,这简直是疯了。 我的想法是当用户添加新评论时出现 无需重新加载页面,请按下面的“我的控制器”、“视图”和“路线”进行操作。啊,为了删除,我做了一些有效的事情

这里是/app/controller/comments\u controller.rb

Post app/controller/posts_controller.rb

Views Comments/app/Views/Comments/_template.html.slim

Views Comments/app/Views/Comments/_form.html.slim

Views-Pots/app/Views/posts/show.html.slim

使用dele注释的解决方案

create.js.erb
$(“#注释”).html(“”);
_template.html.erb

评论控制器 def创建 @post=post.find(参数[:post\u id]) @comment=@post.comments.build(comment_参数) @comment.save 回应待办事项|格式| format.html{redirect_to:back} format.js 结束 结束
这可能过于简单,但可能会引发一些问题。
create.js.erb
$(“#注释”).html(“”);
_template.html.erb

评论控制器 def创建 @post=post.find(参数[:post\u id]) @comment=@post.comments.build(comment_参数) @comment.save 回应待办事项|格式| format.html{redirect_to:back} format.js 结束 结束

这可能过于简单,但可能会引发一些问题。

使用$.ajax怎么样,将注释文本发送给控制器,验证它,如果有效,则响应true。收到true后,$(注释持有者).append(新注释)。。哦,您正在寻找$.ajax语法?我正在尝试类似jQuery的东西->#创建注释$(“.comment form”)。在“ajax:beforeSend”(evt,xhr,settings)->$(this)。find('textarea')。addClass('uneditable-input')。attr('disabled','disabled')。在“ajax:success”(evt,data,status,xhr)->$(this).find('textarea').removeClass('uneditable-input').removeAttr('disabled','disabled').val('')$(xhr.responseText).append($(“#comments_container”)).show('slow')请将代码作为文本而不是快照发布?抱歉,这是我的第一篇文章,从现在起我将只发布文本代码。使用$.ajax如何,将注释文本发送到控制器,验证它,如果有效,则响应true。收到true后,$(注释持有者).append(新注释)。。哦,您正在寻找$.ajax语法?我正在尝试类似jQuery的东西->#创建注释$(“.comment form”)。在“ajax:beforeSend”(evt,xhr,settings)->$(this)。find('textarea')。addClass('uneditable-input')。attr('disabled','disabled')。在“ajax:success”(evt,data,status,xhr)->$(this).find('textarea').removeClass('uneditable-input').removeAttr('disabled','disabled').val('')$(xhr.responseText).append($(“#comments_container”)).show('slow')请将您的代码作为文本而不是快照发布?抱歉,这是我的第一篇文章,从现在起我将只发布文本代码。更清楚地说,我使用gem'acts_as_commentable_with_threading',注释控制器可用于任何其他模型,你给我的解决方案将改变事情的运作方式。谢谢。更清楚地说,我使用gem作为带线程的注释控制器,注释控制器可以用于任何其他模型,您给我的解决方案将改变工作方式。非常感谢。
create.js.erb

$("#comments").html("<%= escape_javascript(render partial: "comments/template", collection: @post.comments, as: :comment) %>");

_template.html.erb
<p class="comment-name"><%= link_to comment.user.name, user_path(comment.user_id)%>
  <span class="comment-content"><%= comment.content %></span> 
</p>
<p class="comment-time"><%= time_ago_in_words(comment.created_at) %></p>

CommentsController

def create
    @post = Post.find(params[:post_id])
    @comment = @post.comments.build(comment_params)
    @comment.save
    respond_to do |format|
      format.html { redirect_to :back }
      format.js 
    end 
end