Ruby on rails 如何在rails 4上使用ajax?

Ruby on rails 如何在rails 4上使用ajax?,ruby-on-rails,ruby,ajax,ruby-on-rails-4,Ruby On Rails,Ruby,Ajax,Ruby On Rails 4,我正在尝试使用ajax在Rails4中创建一个评论区域。我的目标是在同一页面中创建注释及其输出,而无需加载页面。我添加了一些代码。当我点击“添加评论”按钮时,数据输入数据库,但不反映在同一页面中。如果任何人有任何想法,请与我分享,谢谢 我的代码如下: 在注释控制器中: def create @article = Article.find(params[:article_id]) @comment = @article.comments.create @comment.bo

我正在尝试使用ajax在Rails4中创建一个评论区域。我的目标是在同一页面中创建注释及其输出,而无需加载页面。我添加了一些代码。当我点击“添加评论”按钮时,数据输入数据库,但不反映在同一页面中。如果任何人有任何想法,请与我分享,谢谢

我的代码如下:

在注释控制器中:

def create
    @article = Article.find(params[:article_id])
    @comment = @article.comments.create
    @comment.body = params[:comment]["body"]

    respond_to do |format|
        @comment.save
        format.html { redirect_to @article }
        format.js
    end
end
在视图/文章下的show.html.erb中

<div class="col-xs-12 col-sm-12">
  <h2 class="text-center"><%= @article.title.html_safe %></h2>
    <p><%= @article.body.html_safe %></p>
      <h2>Comments</h2>
        <div id="comments">
             <!--  <p><%= render :partial => @article.comments %></p> -->
             <%= render :partial => 'comments/comment', :collection => @article.comments %>
        </div>
        <%= form_for([@article, Comment.new], :remote => true) do |f| %>
              <p>
                <%= f.label :body, "New comment" %><br/>
                <%= f.text_area :body, type:"text", tabindex: "6", class: "form-control",  placeholder: 'your comment', rows: "4", required: true  %>
              </p>
              <p><%= f.submit "Add comment" %></p>
        <% end %>
</div>
config/application.rb

config.action_view.JavaScript_expansions[:defaults] = %w(jquery rails application)

在rails中处理这种情况的正确方法是使用远程表单,通过这种方式可以交互地从db中插入和删除对象。 下面是两篇关于rails和中的远程表单的解释性博客文章。通过这种方式,您可以在不刷新的情况下提交表单,然后使用处理程序在控制器回调后生成创建的元素。 希望这符合您的问题。

添加了如下内容:

在视图/注释下创建.js.erb

page.insert_html :bottom, :comments, :partial => 'comment', :object => @comment
page[:new_comment].reset
$("#comments").append("<%= escape_javascript(render(:partial => @comment)) %>");
$("#new_comment")[0].reset();
$(“#注释”)。追加(“@comment”)%>”;
$(“#新#注释”)[0]。重置();

这对我很有用。

这些也是有用的链接。
$("#comments").append("<%= escape_javascript(render(:partial => @comment)) %>");
$("#new_comment")[0].reset();