Wie verwende ich will_paginate mit einer verschachtelten Ressource in Rails?

Ich bin neu bei Rails und habe große Probleme, will_paginate dazu zu bringen, mit einer verschachtelten Ressource zu arbeiten.

Ich habe zwei Modelle, Kontoauszug und Rechnung. will_paginate arbeitet an Statement, aber ich kann es nicht für Invoice zum Laufen bringen. Ich weiß, dass ich etwas Dummes tun würde, aber ich kann es nicht herausfinden und die Beispiele, die ich bei Google gefunden habe, funktionieren bei mir nicht.

statement.rb
class Statement < ActiveRecord::Base
  has_many :invoices

  def self.search(search, page)
    paginate :per_page => 19, :page => page,
      :conditions => ['company like ?', "%#{search}%"],
      :order => 'date_due DESC, company, supplier'
  end
end

statements_controller.rb  <irrelevant code clipped for readability>
def index #taken from the RAILSCAST 51, will_paginate podcast
  @statements = Statement.search(params[:search], params[:page])
end

I call this in the view like so, and it works:
  <%= will_paginate @statements %>

Aber ich kann nicht herausfinden, wie es für Rechnungen funktioniert:

invoice.rb
class Invoice < ActiveRecord::Base
  belongs_to :statement

   def self.search(search, page)
     paginate :per_page => 19, :page => page,
       :conditions => ['company like ?', "%#{search}%"],
       :order => 'employee'
  end
end

invoices_controller.rb
class InvoicesController < ApplicationController

  before_filter :find_statement


  #TODO I can't get will_paginate to work w a nested resource
  def index #taken from the RAILSCAST 51, will_paginate podcast
        @invoices = Invoice.search(params[:search], params[:page])
  end

 def find_statement
    @statement_id = params[:statement_id]
    return(redirect_to(statements_url)) unless @statement_id
    @statement = Statement.find(@statement_id)
  end
end

Und ich versuche es so zu nennen: <% = will_paginate (@invoices)%>

Die häufigste Fehlermeldung lautet, wenn ich damit spiele: "Die Variable @statements scheint leer zu sein. Haben Sie vergessen, das Erfassungsobjekt für will_paginate zu übergeben?"

Ich habe keine Ahnung, wo das Problem liegt oder wie es behoben werden kann. Vielen Dank für jede Hilfe und Anleitung!

Antworten auf die Frage(1)

Ihre Antwort auf die Frage