Rails Пагинация с Kaminari с has_many: через отношения - PullRequest
1 голос
/ 01 июля 2011

У меня есть три соответствующие модели. Пользователь, который has_many :photos и belongs_to :dorm, Общежитие, которое has_many :users и has_many :photos, :through => :users, и класс Фото, который belongs_to :users и belongs_to :dorm.

Я хочу разбить все фотографии в общежитии с каминари. У меня есть это в моем Gemfile и выполнил команду bundle.

В моем контроллере dorms_

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

и в моем представлении в общежитии (на самом деле в частичном _index.html.erm, отображаемом в представлении для показа):

<%= paginate @photos %>

Это дает мне ошибку: undefined method 'page' for #<Class:0x107483d68>.

Я знаю, почему это не работает (не должно вызываться в классе), но я не знаю, как заставить это работать ...

Ответы [ 2 ]

1 голос
/ 01 июля 2011

хмм, странно.Это должно работать.Я на самом деле создал приложение vanilla с действием, которое вы показали выше, и со следующими моделями, но я не смог воспроизвести ошибку.

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)
0 голосов
/ 01 июля 2011
  1. является ли камень "каминари" в вашем Gemfile?
  2. запустить упаковщик после изменения вашего Gemfile
...