0

Ich versuche, ein vorhandenes aktives Datensatzmodell zu überschreiben, aber das neue aktive Datensatzmodell hat keine Methoden aus dem alten aktiven Datensatzmodell. Hier ist der Code, den ich zu verwenden Ich versucheBestehendes Modell in Rails überschreiben 4

class ModelA < ActiveRecord::Base 

    def method_modela_1 
    logger.info "I am in method_modela_1" 
    end 

    def method_modelb_2 
     logger.info " I am in method_modelb_2" 
    end 
end 

Next ich die ModelA mit Modell B außer Kraft setzen

class ModelB < ModelA 
    def foo 
     logger.info "foo method from model B" 
    end 
end 

So, jetzt ich einen Code zu schreiben versuche, die find_or_create_by zuzugreifen versucht, den folgenden Code verwenden

some_variable = ModelB.find_or_create_by(:id => 1234) 

aber es sagt ***** NoMethodError Exception: undefined method 'find_or_create_by' for ModelB:Module**

Was ist Ich vermisse? Für Rekord I 'rails', '4.2'

Antwort

1

Das Schlüsselwort bin mit ist „NoMethodError Ausnahme: nicht definierte Methode‚find_or_create_by‘für Modell B: Modul“.

Sie haben irgendwo einen , und aufgrund der Ladereihenfolge und/oder der konstanten Suchregeln wird Ihr Modell beschattet.

+0

Sie hatten Recht. Ich denke, ich muss die Fehlermeldungen besser verstehen! Vielen Dank – Sana