Проблема в kaminari ajax разбивке на страницы

Я использую разбиение на страницы 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>

Пожалуйста, помогите мне решить эту проблему


person web spider26    schedule 04.04.2012    source источник


Ответы (1)


Я заметил, что когда я использую ‹%= 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 также работает нормально.

person web spider26    schedule 11.04.2012