Ich versuche zu lernen, wie zu schreiben Bereiche in Rails 5.Rails 5 - wie einen Bereich zu schreiben
Ich habe ein Benutzermodell und einen Vorschlag Modell. Die Verbände sind:
Benutzer:
has_many :proposals
Vorschlag:
belongs_to :user
In meinem Vorschlag Modell, Im zu versuchen, herauszufinden, wie man einen Rahmen zu schreiben, dass die Vorschläge findet, die dem Benutzer gehören das hat sie erschaffen.
Ich versuche:
scope :proponent, -> { where(user_id: user.id) }
Ich habe eine Million Variationen dieses versucht, aber ich kann man nicht finden, die funktioniert.
Dieser besondere Versuch gibt diesen Fehler:
2.3.1p112 :001 > Proposal.proponent
NameError: undefined local variable or method `user' for Proposal (call 'Proposal.connection' to establish a connection):Class
ich auch versucht:
scope :proponent, -> { where('proposal.user_id = ?', user.id) }
Der Fehler, den ich aus diesem Versuch erhalten ist:
undefined local variable or method `user' for #<Class:0x007fd3600eb038>
ich nicht wissen, ob die Fehlermeldung bedeutet, dass das erste oder zweite Mal, dass ich 'Benutzer' in meinem Versuch schrieb, falsch ist. Ich weiß nicht, was "Call" Proposal.connection "bedeutet".
Kann jemand sehen, was ich tun muss, um die Vorschlagstabelle zu überprüfen, um diejenigen zu finden, die zu einem bestimmten Benutzer gehören?
Warum sagen Sie nicht einfach und die Vorteile der Verbände Sie bereits haben und tun 'user.proposals' ? –
Weil ich versuche, Pundit zu benutzen - was Bereiche braucht. – Mel
Ist es [dieser Pundit] (https://github.com/elabs/pundit)? Wenn das der Fall ist, bin ich mir nicht sicher, ob es sich bei den genannten Bereichen um Bereiche für Schienen handelt. Aus der README-Datei heißt es: "Das zweite Argument ist ein Bereich, in dem irgendeine Art von Abfrage durchgeführt werden kann. Es wird normalerweise eine ActiveRecord-Klasse oder eine ActiveRecord :: Relation sein, aber es könnte etwas ganz anderes sein." Die Verwendung von user.proposals sollte also in Ordnung sein. –