2016-04-10 6 views
0

Ich habe zwei Modelle eins ist Resident und andere ist Bill.Wie generiere ich mehrere Instanzen für verwandte Objekte in Model Rails?

Bills ->belongs_to: Bewohner

Einwohner ->has_many: Rechnungen

Wie kann ich Rechnungen für alle Bewohner zu generieren?

wie nach dem Klicken auf die Schaltfläche Jetzt generieren. Für jeden Bewohner müssen Rechnungen erstellt werden. Rechnungen werden erstellt drei Modelle mit

verlassen Modell -> belongs_to: Bewohner

Attribute ->start_date: Datumzeit, end_date: Datumzeit

rate_card Modell -> orders_to: hostel

Attribute ->Diät: integer, charge1: int, charge2: intcharge3: int

Kontenmodell -> belongs_to: resident

Attribute -> fein : int, Blätter: Unterschied von Ende-Start-Datum von verlassen Tabelle

Modell

Rechnungen -> belongs_to: resident

Attribute -> FROM_DATE: Datum, to_date: Datum, payable_amount: int, is_paid: bool

Rechnung enthält einen zu zahlende Betrag der

zu zahlende Betrag: 30 * Diät + charge1 + charge2 + kostenlos3 + fein * Blätter

werden kann unter Verwendung der Formel erzeugt

Wie soll ich jetzt Rechnungen für jeden Bewohner erstellen? Ich brauche eine Idee für erstellen Methode danke !!

Hilf mir aus plz ..xD

+0

'Resident.all.ach {| resident | resident.bills.create} '? – spickermann

+0

Alle Bewohner müssen Rechnung haben, wenn Admin diese Schaltfläche Genrate Bill drückt, die Arbeit von erstellen Methode sein wird.! @sipkermann –

Antwort

1

Nun, wenn Sie wollen einfach nur Instanzen erstellen Sie können etwas tun:

bills = Resident.all.map {|resident| resident.bills.create } 

und eine Reihe von Rechnungen erstellt bekommen.

+0

Dies funktioniert, wird aber viel Speicher verwenden, wenn "Bewohner" ein großer Tisch ist. Verwenden Sie 'Resident.find_each {| resident | resident.bills.create} 'wenn die resultierende Sammlung neu erstellter Rechnungen nicht benötigt wird. –

-2

Ich denke, es will Rechnungen für alle Bewohner generieren:

Resident.all.each do |r| 
    bill = Bill.new({:resident_id => r.id, :amount => value, :description => "Yadda yadda"}) 
    bill.save 
end 

Es sollte sicherstellen, dass es fügt die richtigen Attribute, so scheint es wahrscheinlich ist vorbei Rechnung info als params an die Steuerung.

Verwandte Themen