2016-11-16 4 views
0

Ich habe zwei Modelle miteinander verwandt, wie untenSortierung nach einer anderen verwandten Modellattribute - Ruby on Rails

class Weed < ApplicationRecord 
    has_many :user_transactions, :dependent => :destroy 
end 

Dieses Unkraut Modell ein Attribut Name hat Kreis

und zugehörige Modell:

class UserTransaction < ApplicationRecord 
    belongs_to :weed 
end 

Jetzt möchte ich von Aufzeichnungen holen UserTr ansaction Modell auf der Grundlage der Sortierung von Grafschaft in Unkraut-Modell und finden Sie durch die Grafschaft zu.

Bitte schlagen Sie mir vor, wie ich mit minimaler Komplexität das richtige Ergebnis erzielen kann.

Danke.

Antwort

1
UserTransaction.joins(:weed).order('weeds.county DESC') 
UserTransaction.joins(:weed).where(weeds: { county: 'something' }).order('weeds.county DESC') 
+0

UserTransactions wird löst einen Fehler von "NameError: nicht initialisierte Konstante UserTransactions" aus, so dass Sie UserTransaction anstelle von UserTransactions verwenden sollten. –

+0

@JaiKumarRajput es ist ein Tippfehler –

+0

Bearbeiten Sie bitte unkraut.counry zu unkraut.county zu –

1

Wenn Sie mit dem Kreis sortieren möchten Sie so tun können:

UserTransaction.joins(:weed).order("weeds.county DESC") 

oder wenn Sie von Kreis finden wollen dann verwenden:

UserTransaction.joins(:weed).where("weeds.county"=> "xyz") 
+0

Seine 'county', nicht' country'. :) –

+0

Yaahh ... Danke das war Tippfehler –