2011-07-01 3 views
1

J'ai trois modèles pertinents. Un utilisateur qui has_many :photos et belongs_to :dorm, un dortoir qui has_many :users et has_many :photos, :through => :users, et une classe de photos qui belongs_to :users et belongs_to :dorm.Rails Pagination avec Kaminari avec has_many: à travers la relation

Je veux paginer toutes les photos qui sont dans un dortoir avec kaminari. Je l'ai dans mon Gemfile et ai couru la commande de paquet.

Dans mon dorms_controller:

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

et à mon avis show Dorm (en fait dans une partielle, _index.html.erm rendu dans la vue du spectacle):

<%= paginate @photos %> 

Cela me donne la erreur: undefined method 'page' for #<Class:0x107483d68>.

Je sais pourquoi cela ne fonctionne pas (ne devrait pas être appelé une classe), mais je ne sais pas comment le faire fonctionner ...

Répondre

1

HRM, étrange. Cela devrait fonctionner. J'ai effectivement fait une application vanille avec une action que vous avez montrée ci-dessus et les modèles suivants, mais je n'ai pas pu reproduire l'erreur.

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 

Il doit y avoir une autre cause première dans votre code d'application. Alors, pourriez-vous localiser le problème un peu plus? Pour commencer, le code suivant fonctionne-t-il dans votre console rails?

@dorm.photos.page(1) 
+0

Si je fais Dorm.find (1) .photos.page (1) cela fonctionne. Donc ça doit être quelque chose avec params [: id] mais je ne sais pas pourquoi ça ne marcherait pas. – Rymo4

+0

gratter cela, ce n'est pas params [: id]. Si je trouve juste (1) à la place, j'obtiens la même erreur. – Rymo4

+0

maintenant j'ai redémarré mon serveur et cela fonctionne ... je ne sais pas pourquoi parce que je l'avais déjà redémarré. étrange, mais fermé néanmoins. Merci. Mal vous donner un accord même s'il s'est un peu fixé. – Rymo4

-1
  1. est petit bijou « Kaminari » dans votre Gemfile?
  2. course Bundler après avoir changé votre Gemfile
+0

J'ai déjà fait les deux. – Rymo4

+0

Et avez-vous redémarré votre serveur après cela? – bassneck

Questions connexes