5

我已经开始学习 Rails,我想在评论中添加 ajax

应使用 Ajax 添加注释

你能帮忙或链接到一个例子吗?

如果我的 config.rb 在这里:

  resources :posts do
    resources :comments
  end

在 post/show.html.erb

<p><%= @post.title %></p>

    <h2>Comments:</h2>
    <div id='com'>
      <%= render @post.comments %>
    </div>

<h2>Add a comment:</h2>
<%= render "comments/form" %>

在视图/comments/_comment.html.erb 中:

<p>
  <strong>Commenter:</strong>
  <%= comment.commenter %>
</p>
<p>
  <strong>Comment:</strong>
  <%= comment.body %>
</p>
<%= link_to "Del", [comment.post, comment], :confirm => 'Are you sure?', :method => :delete %>
<hr>

在评论/form.html.erb

<%= form_for([@post, @post.comments.build], remote: true) do |f| %>
.
.
.

在 comments_controller 中:

class CommentsController < ApplicationController

  def create
    @post = Post.find(params[:post_id])
    @comment = @post.comments.create(params[:comment])

    respond_to do |format|
        format.html { redirect_to post_path(@post) }
        format.js 
    end
  end

并在视图中添加文件:_create.js.erb

$('#com').html("<%=j render @post.comments %>");

没有远程真所有作品(但重新加载页面)动作删除作品

在 application.html.erb

  <%= javascript_include_tag 'application' %>

当我点击提交表单时 - 没有任何反应

但是当我(提交后)重新加载页面时 - 我看到了添加的评论

4

2 回答 2

3

您需要包含不显眼的 javascript

app/assets/javascripts/application.js

你有这个吗(如果没有添加它)

//= require jquery
//= require jquery_ujs

@DemitriyDN 本人回答:)

重命名_create.js.erbcreate.js.erb

于 2012-09-06T12:50:16.717 回答
0

在 comments_controller 中编辑您的新代码:

class CommentsController < ApplicationController

  def create
    @post = Post.find(params[:post_id])
    @comment = @post.comments.create(params[:comment])

    respond_to do |format|
        format.html { redirect_to post_path(@post) }
        format.js 
    end
  end
end
于 2013-03-22T03:57:09.487 回答