1

Ajax 関数からパーシャルを呼び出すにはどうすればよいですか。home.html.erb 内のパーシャルのコンテンツをレンダリングする必要があります。コードは次のとおりです。

<div class="span8">
  <h3>Micropost Feed</h3>
    <div class="posts">
        <%= render 'feed' %>
    </div>
</div>

一番下にスクリプトがあります。問題のコードは次の行にあります。

if(nearBottomOfPage()) {
  loading=true;
  page++;
  $.ajax({ // send an ajax-request to load the next page
    url: '/feed?page=' + page,
    type: 'get',
    dataType: 'script',
    success: function() { // after successfully completing the ajax-request redraw the    sausage-navigation.
      $(window).sausage('draw');
      loading=false;
    }
  });

「url」パラメーターは、パーシャルを呼び出すために何を記述すればよいかわからない場所です。このパーシャルは call _feed.html.erb であり、Home.html.erb の同じフォルダー内にあります。最後に、コントローラー アクションにこれがあります。 :

def home
  if signed_in?
    @post  = current_user.posts.build
    @feed_items = current_user.feed.order(:created_at).page(params[:page])
  end  
  respond_to do |format|
      format.js  { render :partial => 'feed'}
      format.html # index.html.erb
      format.xml  { render :xml => @feed_items }
    end
 end

そのパーシャルを Ajax 関数から呼び出すにはどうすればよいですか?

どうもありがとう。

4

1 に答える 1

2

URLを介してパーシャルを直接呼び出すことはできません。/publicdir内のページ/ビューのみに直接アクセスできます。

「フィード」を部分的にレンダリングするコントローラーアクションと、対応するルートを作成する必要があります。次に、そのルートのパスをAJAXURLとして使用します。

于 2012-09-18T23:58:15.920 に答える