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" %>

ビュー/コメント/_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| %>
.
.
.

コメント_コントローラーで:

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 %>");

リモートなし true すべての作品 (ただし、ページをリロード) アクション 削除 はに動作します

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.erbを変更create.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 に答える