Ich habe es mit einem Einkaufswagen, der viele Produkte enthält. Die Produkte können von mehreren verschiedenen Firmen verkauft werden. Was ich versuche, ist die eindeutige Auswahl der Firmen, so dass ich eine Bestellung pro Verkäufer erstellen kann.Schienen 4 Auswahl uniq Objekte bezogen AR CollectionProxy
der Hack
companies = []
@cart.products.each { |p| companies << p.company }
companies.uniq
#create order for each company
Ich bin mir nicht sicher, ob #pluck
etwas, das ich hier verwenden sollten, aber ich weiß, dass es eine effizientere Art und Weise zu sammeln mein Unternehmen hat einen guten „eindeutig sein ". #uniq
nicht für mich zu arbeiten scheint, und auch nicht @cart.products.pluck(:company)
Ich habe keine :company_id
in meinem Bid-Modell, es ist eine has_many/has_one
Beziehung
ehrfürchtig tun können, das funktioniert .. können Sie klären ich was das kaufmännische Und macht? Ich habe nie wirklich gewusst, wann und wann es nicht aufgenommen wurde. – gemart
Sicher Sache. Es ist eine Abkürzung für '@ cart.products.collect (&: company.to_proc)'. Dies entspricht ä@cart.products.collect {| prod | prod.company} '. Dies funktioniert nur für Objekte, die die Methode 'to_proc' implementieren oder erben. Es gibt eine gute Erklärung hier: http://stackoverflow.com/questions/1217088/what-does-mapname-mean-in-ruby – Krzysztof