NoMethodError - undefinierte Methode 'find_by' für []: ActiveRecord :: Relation

7

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?

    
titibouboul 19.07.2013, 15:54
quelle

2 Antworten

22

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 .

%Vor%

Sie können auch die dynamische find_by_attribute

verwenden %Vor%

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.

%Vor%

Ein großer Vorteil ist, dass es kein Objekt erzeugt und nur einen booleschen Wert zurückgibt.

    
jvnill 19.07.2013, 16:08
quelle
2

Sie können

verwenden %Vor%

oder

%Vor%     
x2l2 03.10.2013 02:35
quelle