Ich versuche zu lernen, wie Bereiche in Rails geschrieben werden.Wie schreibe ich einen Bereich in Rails?
Ich habe Modelle für Benutzer, Organisation und Organisation anfordern. Die Verbände sind:
User
has_one :organisation
Organisation
belongs_to :owner, class_name: 'User'
has_many :organisation_requests
Organisation_request
belongs_to :organisation
In meiner Organisation Anfrage Modell, ich versuche, einen Bereich zu schreiben, um alle Anfragen Organisation auszusuchen, die zu der Organisation Eigentümer gehören.
scope :same_org, where(:organisation_id => owner.organisation_id)
Da ist in meinem organisation_requests Controller, ich habe:
def index
@organisation_requests = OrganisationRequest.same_org
end
ich die oben versucht. Besitzer ist ein Alias für Benutzer. In jeder Organisation wird ein Benutzer als Eigentümer dieser Organisation nominiert. Ich möchte, dass dieser Benutzer einen Index der Organisationsanforderungen erhält, die für die Organisation dieses Eigentümers eingehen.
Kann jemand sehen, was ich hier falsch gemacht habe? Ich verstehe nicht, wie man Scopes schreibt.
Die Syntax verwendet eine Lambda, wie Hasmukh Antwort zeigt. Siehe [http://api.rubyonrails.org/classes/ActiveRecord/Scoping/Named/ClassMethods.html#method-i-scope](http://api.rubyonrails.org/classes/ActiveRecord/Scoping/Named/ClassMethods] .html # method-i-scope) –
hey, hast du das gelöst? –
Hallo @AndreyDeineko - Ich versuche immer noch, es zu lösen.Ich habe ein anderes Problem, das mich daran hindert, das Zielfernrohr aufzurufen - also arbeite ich zuerst daran. Ich habe Ihre Notizen und werde aktualisiert, um Ihre Antwort zu akzeptieren, wenn ich es funktioniere. Danke fürs Nachfassen. Ich bin sehr langsam zu lernen ... – Mel