在铁轨上的红宝石中的分页

时间:2012-12-03 09:25:24

标签: ruby-on-rails-3 kaminari

我有一个任务要做分页。当我做分页时我遇到了这些错误

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>

我该如何解决这个问题?

2 个答案:

答案 0 :(得分:0)

参考this

我想您忘了在gemfile

中添加以下内容
gem 'kaminari'

然后捆绑安装

答案 1 :(得分:0)

我认为这个问题与kaminari gem配置(不是你的代码)有关。我建议你快速检查一下:

  1. 运行bundle install
  2. 重新启动服务器(因为可能尚未加载更改)
  3. 检查你的gemfile是因为,kaminari gem可能放错地方(在:test group下)
  4. 有点显而易见,但有时候我发现自己在忘记一些基本检查后也浪费时间。