/ / Rails Impaginazione con Kaminari con has_many: attraverso Relationship - ruby-on-rail, ruby-on-rail-3, impaginazione, kaminari

Rails Paginazione con Kaminari con has_many: attraverso Relationship - ruby-on-rail, ruby-on-rail-3, paginazione, kaminari

Ho tre modelli rilevanti. Un utente che has_many :photos e belongs_to :dorm, un dormitorio che has_many :users e has_many :photos, :through => :userse una classe fotografica che belongs_to :users e belongs_to :dorm.

Voglio impaginare tutte le foto che sono in un dormitorio con kaminari. Ce l'ho nel mio Gemfile e ho eseguito il comando bundle.

Nel mio dorms_controller:

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

e nella mia vista mostra dormitorio (in realtà in una parte, _index.html.erm rendering nella vista dello spettacolo):

<%= paginate @photos %>

Questo mi dà l'errore: undefined method "page" for #<Class:0x107483d68>.

So perché questo non funziona (non dovrebbe essere chiamato in classe), ma non so come farlo funzionare ...

risposte:

1 per risposta № 1

hrm, strano. Questo dovrebbe funzionare Realmente ho creato un'app vanilla con un'azione che hai mostrato sopra e i seguenti modelli, ma non ho potuto riprodurre l'errore.

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

Ci dovrebbe essere un'altra causa alla radice nel codice dell'app. Quindi, potresti rintracciare il problema un po 'di più? Per cominciare, il codice seguente funziona nella tua console delle rotaie?

@dorm.photos.page(1)

-1 per risposta № 2
  1. è gemma "kaminari" nel tuo Gemfile?
  2. eseguire bundler dopo aver cambiato il tuo Gemfile