Ich muss mit anderen Objekt in meiner Ruby on Rails-Anwendung zusammenführen. Ich habe meine Rechnung Objekt:Ruby, verschmelzen zwei verschiedene Objekte
class Invoice < ActiveRecord::Base {
:id => :integer,
:user_id => :integer,
:description => :text,
......
:status => :string,
:price => :float
}
Und meine Zahlung Objekt:
class Payment < ActiveRecord::Base {
:id => :integer,
:token => :string,
:invoice_id => :integer,
:created_at => :datetime,
:updated_at => :datetime,
:email => :string
}
mit 1 bis Beziehung zwischen ihnen:
class Invoice < ActiveRecord::Base
has_many :payments
class Payment < ActiveRecord::Base
belongs_to :invoice
was Nun würde ich tun möchte, ist zurück das Rechnungsobjekt und das Feld: email und: created_at des zugeordneten Zahlungsobjekts. Gerade jetzt kehre ich das zwei Objekt mit der Zip-Funktion:
:invoices => (user.invoices.where(:hide => false).zip user.invoices.map{|x| x.payments.last}),
aber, dass eine Reihe von Array zurück:
[
[{invoice},{payment}],
[{invoice},{payment}],
...
]
Was ich will zurückkehren ist so etwas wie:
[
{invoice, :email_payment, :created_at_payment},
{invoice_1, :email_payment, :created_at_payment},
...
]
Wie kann ich das machen?
Könnten Sie nicht schaffen 'email_payment' und' created_at_payment' Methoden in Ihrem 'Invoice' Klasse und verwenden Sie nur 'Rechnungs'-Objekt? – Magnuss
Ja, aber aus logischer Sicht macht das nicht viel Sinn, ich hoffte, dass es eine bessere Lösung geben würde! – ste