In meinem Modell subject.rb
ich habe dieManipulieren gesuchte Objekt (Kind) in (parent) Modell
has_many :tutors, through: :profiles
def self.search(param)
where("name like ?", "%#{param}%")
end
So etwas wie Subject.search("English")
funktioniert perfekt in Ordnung in Schienen-Konsole.
Was ich gerne wissen würde ist, dass, wenn ich subject = Subject.first
tun und ich Sachen wie subject.id
tun kann und es die Subjekt-ID an mich zurückgibt. Während
wenn ich subject = Subject.search("English")
tun bin ich nicht in der Lage etwas wie subject.id
zu tun, weil ich versuche, die Suchfunktion zu meinem tutor.rb
Modell mit dem folgenden Code zu verknüpfen.
def self.subject_search(s)
@tutor = Tutor.all
@tutor.each do |x|
y = x.subjects.search(s)
unless y.empty?
return x
end
end
end
Das funktioniert, aber nur einen Tutor und nicht alle Tutoren, die das Thema haben.
Ich habe auch versucht, diese stattdessen
def self.subject_search(s)
@subject = Subject.search(s)
if @subject
@subject.tutors
end
end
Aber das ist, wenn ich merkte @ subject.tutors nicht funktioniert, wie oben erklärt, wenn i subject = Subject.search("English")
ich nicht subject
mit allen möglichen Methoden manipulieren kann.
Was mache ich falsch?
Sie können Fehler selbst finden, wenn Sie versuchen, Subject.search ("Englisch") anzuzeigen. Class! = Modell Betreff aber Array oder ... –
Ja ich bin mir bewusst, dass wenn ich 'Subject.search (" Englisch ")' es sagt etwas in Richtung der ActiveRecord_Relation. Aber was ich nicht verstehe ist, was ich stattdessen tun sollte? – angkiki