Ich habe das Michael Heartl-Tutorial verfolgt, um ein Folge-System zu erstellen, aber ich habe einen seltsamen Fehler: "undefined Methode 'find_by' für []: ActiveRecord :: Relation". Ich benutze Gerät zur Authentifizierung.
Meine Ansicht /users/show.html.erb sieht so aus:
%Vor%Benutzermodell 'models / user.rb':
%Vor%Beziehungsmodell 'models / relation.rb':
%Vor%Rails sagt mir, dass das Problem im Benutzermodell ist: "relationships.find_by (folge_id: other_user.id)" weil mthod nicht definiert ist, aber ich verstehe nicht warum?
Ich glaube, find_by
wurde in Rails 4 eingeführt. Wenn Sie rails 4 nicht verwenden, ersetzen Sie find_by
durch eine Kombination von where
und first
.
Sie können auch die dynamische find_by_attribute
ASIDE:
Ich schlage vor, dass Sie Ihre following?
-Methode ändern, um einen truthigen Wert anstelle eines Datensatzes (oder Null, wenn kein Datensatz gefunden wird) zurückzugeben. Sie können dies tun, indem Sie exists?
verwenden.
Ein großer Vorteil ist, dass es kein Objekt erzeugt und nur einen booleschen Wert zurückgibt.
Tags und Links ruby-on-rails devise rails-activerecord nomethoderror