2012-11-20 10 views
8

が、私は2つの単純なモデルで、ピンとコメントをした、コメントはピンに属している:でRailsの3 - AjaxとjQueryの(ネストされたリソース)でのアップデートのdivコンテンツ

class Pin < ActiveRecord::Base 
    has_many :comments, dependent: :destroy 

class Comment < ActiveRecord::Base 
    belongs_to :pin 

ピンのインデックスアクションは基本的にすべてのピンのリスト+ divです。 divは、ユーザーがピンを選択したときにすべてのコメントを表示する必要があります。

概念はかなりシンプルですが、達成方法を理解できません。 私は多くの主題に関連していることを発見しましたが、私はいつも自分の問題との違いで自分自身を失いました。

いくつかの正確な質問:

  • このAJAX負荷を行うにはどのように? (jqueryを使用)
  • パーシャルを使用するか、コメントのインデックスビューを使用する必要がありますか?

答えて

15

私はピンをユーザが選択するためのリンクを使用するつもりですが、あなたのアイデアを得る:comments_controller.rbで

#:remote => true allows ajax stuffz. 
<%= link_to 'show comments', pin_comments_path(@pin), :remote=> true %> 

を(私はここindexアクションを使用していますが、この場合

def index 
    @pin = Pin.find(params[:pin_id]) 
    @comments = @pin.comments.all 

    respond_to do |format| 
    format.js { render :pin_comments } 
    end 
end 

)あなたのニーズに微調整コントローラは、あなたのコメントのdivと相互作用するpin_comments.js.erbを、レンダリングになります。

//pin_comments.js.erb 
$("#comments_div").html("<%= j(render('show_comments', :comments=> @comments)) %>"); 

ビュー部分テンプレートは、コメント

役立ちます
#_show_comments.html.erb 
<div id="comments_div"> 
    <% comments.each do |c| %> 
     <p> 
      <h1><%= c.title %></h1> 
      <h6>by <%= c.author %> </h6> 
      <%= c.content %> 
     </p> 
    <% end %> 
</div> 

希望を表示するには!

+0

クリスタルクリア、ありがとうございます。 –

関連する問題