1

我有三个相关的模型。一个 User which has_many :photosand belongs_to :dorm,一个 Dorm which has_many :usersand has_many :photos, :through => :users,以及一个 Photo class which belongs_to :usersand belongs_to :dorm

我想用 kaminari 对宿舍里的所有照片进行分页。我在我的 Gemfile 中有它并运行了 bundle 命令。

在我的 dorms_controller 中:

@dorm=Dorm.find(params[:id])
@photos=@dorm.photos.page(params[:page]).per(3)

在我的 Dorm 显示视图中(实际上是在显示视图中呈现的部分 _index.html.erm ):

<%= paginate @photos %>

这给了我错误:undefined method 'page' for #<Class:0x107483d68>

我知道为什么这不起作用(不应在课堂上调用),但我不知道如何使它起作用......

4

2 回答 2

1

嗯,奇怪。那应该行得通。实际上,我使用上面显示的操作和以下模型制作了一个香草应用程序,但我无法重现该错误。

class Dorm < ActiveRecord::Base
  has_many :users
  has_many :photos, :through => :users
end

class User < ActiveRecord::Base
  belongs_to :dorm
  has_many :photos
end

class Photo < ActiveRecord::Base
  belongs_to :user
end

您的应用代码中应该有另一个根本原因。那么,您能否进一步追查问题?首先,以下代码在您的 Rails 控制台中有效吗?

@dorm.photos.page(1)
于 2011-07-01T06:41:09.090 回答
-1
  1. Gemfile 中有 gem 'kaminari' 吗?
  2. 更改 Gemfile 后运行 bundler
于 2011-07-01T03:36:29.873 回答