Javascript RubyonRails实现Ajax帖子和评论
有人能帮我吗?我正在尝试将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注释的解决方案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
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