2012-04-04 3 views
1

私のプロジェクトでkaminari ajaxページネーションを使用しています。それは正常に動作していますが、コンテンツはページのページ数を表示しています。たとえば、ページあたりのアイテム数が7の場合、同じコンテンツの7倍を表示しています。何やっていることはproduct_detailsでkaminari ajaxページネーションの問題

product_detailsコントローラで

def index 
    @products=ProductDetail.where("department_id = ? and category_id = ?",1, 1).page(params[:page]).per(15) 
    end 
product_details/index.html.erbで

<div id="product_details"> 
    <%= render @products %> 
</div> 
<div id="paginator"> 
    <%= paginate @products, :remote=>true %> 
</div> 
product_details/index.js.erbで

$('#product_details').html('<%= escape_javascript render (@products) %>'); 
$('#paginator').html('<%= escape_javascript(paginate(@products, :remote=>true).to_s)%>'); 

です/_product_detail.html.erb

<div id="product_list">    
    <% @products.each do | product | %> 
     <div class="product_container">  
      <div class="product_box" > 
       <div id="future_image_container"> 
        <div class="image_block" > 
         <%= image_tag(product.image_path, :alt => "product image", :height=>"215px") %> 
        </div> 
        <span id="future_price" style="text-decoration: line-through; color: #9e9c9c;"> 
         <span style="color: black;"> 
          <%= "$#{product.price}" %> 
         </span> 
        </span> 
        <div id="circle"> 
         <p> 
          <% if(product.discount > 0) %> 
           <% new_price=((2.0*((product.price*product.discount)/100)).round)/2.0 %> 
          <% else %> 
           <% new_price=product.price %> 
          <% end %> 
          <%= "$#{new_price}"%> 
         </p> 
        </div> 
       </div> 
       <p class="future_product_name"> 
        <%= product.name %> 
       </p> 
       <% @brands=Brand.where("id=?",product.brand_id) 
        @brands.each do |brand| 
         @brandname=brand.name 
        end 
       %> 
       <p class="future_product_name"> 
        <%= "Brand : #{@brandname}" %> 
       </p> 
      </div> 
     </div> 
    <% end %> 
</div> 

私は私が<%を使用する場合=レンダリング気づいこの問題

答えて

2

を解決するために助けてください@products%>私はページごとに、それはrepeatesその回数をとっているどのように多くのアイテム。したがって、私は、次のコードによって、これを解決:

product_detailsコントローラでproduct_detailsで

def index 
    @products=ProductDetail.where("department_id = ? and category_id = ?",1, 1).page(params[:page]).per(15) 
    end 

product_details/index.js.erb

$('#product_details').html('<%= escape_javascript render ('index') %>'); 
で/ home.html.erb

<div id="product_details"> 
    <%= render 'index' %> 
</div> 

In product_details/_index.html.erb

<div id="product_list"> 
    <%= paginate @products, :remote=>true %>     
    <% @products.each do | product | %> 
     <div class="product_container">  
      <div class="product_box" > 
       <div id="future_image_container"> 
        <div class="image_block" > 
         <%= image_tag(product.image_path, :alt => "product image", :height=>"215px") %> 
        </div> 
        <span id="future_price" style="text-decoration: line-through; color: #9e9c9c;"> 
         <span style="color: black;"> 
          <%= "$#{product.price}" %> 
         </span> 
        </span> 
        <div id="circle"> 
         <p> 
          <% if(product.discount > 0) %> 
           <% new_price=((2.0*((product.price*product.discount)/100)).round)/2.0 %> 
          <% else %> 
           <% new_price=product.price %> 
          <% end %> 
          <%= "$#{new_price}"%> 
         </p> 
        </div> 
       </div> 
       <p class="future_product_name"> 
        <%= product.name %> 
       </p> 
       <% @brands=Brand.where("id=?",product.brand_id) 
        @brands.each do |brand| 
         @brandname=brand.name 
        end 
       %> 
       <p class="future_product_name"> 
        <%= "Brand : #{@brandname}" %> 
       </p> 
      </div> 
     </div> 
    <% end %> 
</div> 

商品のリピートやアヤックスのページネーションもうまく機能しています

関連する問題