0

ページ付けを行うタスクがありました。ページ付けを行っているときに、これらのエラーが発生しました。

NoMethodError in ProductsController#index

undefined method `page' for []:ActiveRecord::Relation

Rails.root: /home/nithinv/store
Application Trace | Framework Trace | Full Trace

app/controllers/products_controller.rb:4:in `index'

これは私のコントローラーです

 def index

       @products = Product.order(:name).page(params[:page]).per(2)

      respond_to do |format|
        format.html  #index.html.erb
        format.json { render :json=> @products }
      end
     end

これは私のindex.html.erbです

 <% title "Products" %>

<%= paginate @products %>

<% for product in @products %>
  <div class="product">
    <h2><%= link_to product.name, product %></h2>
    <div class="details">
      <%= number_to_currency(product.price) %> |
      Released <%= product.released_at.strftime("%B %e, %Y") %>
    </div>
  </div>
<% end %>

<p><%= link_to "New Product", new_product_path %></p>

どうすればこの問題を解決できますか?

4

2 に答える 2

0

これを参照してください

次の行を追加するのを忘れたと思いますgemfile

gem 'kaminari'

その後、バンドルインストール

于 2012-12-03T09:40:13.627 に答える
0

問題は(コードではなく)kaminarigemの構成に関係しているようです。このクイックチェックを行うことをお勧めします:

  1. 走るbundle install
  2. サーバーを再起動します(変更がロードされていない可能性があるため)
  3. kaminari gemが置き忘れられている可能性があるため、gemfileを確認してください(:test groupの下)

少しわかりやすいですが、基本的なチェックを忘れて時間を無駄にしていることもあります。

于 2012-12-03T09:58:24.000 に答える