1

我在我的项目中使用 kaminari ajax 分页。它工作正常,但内容在页面中显示页数。例如,如果每页的项目数为 7,则显示相同内容的 7 倍。正在做的是

在 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_details/_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>

请帮我解决这个问题

4

1 回答 1

2

我注意到,当我使用 <%= render @products %> 时,我每页取了多少个项目,它重复了多少次。因此我通过以下代码解决了这个问题:

在 product_details 控制器中

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

在 product_details/home.html.erb

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

在 product_details/index.js.erb

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

在 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>

现在没有产品重复和ajax分页也可以正常工作

于 2012-04-11T11:59:35.477 回答