0

Rails 5 hier.Rails 5 enum innerhalb des Modells Bedenken erzeugt NameError: nicht initialisierte Konstante

Ich versuchte ohne Glück, ein Anliegen in meinem Benutzermodell (Modell) zu laden. Die include Levelable funktioniert problemlos bei anderen Modellen. Muss ich ein spezielles Config/Helper/Initializer in Bezug auf dieses spezielle Modell konfigurieren, damit es funktioniert?

Modell Sorge Nivellierbarer wird durch Modelle Benutzer und Client-

verwendet
#models/concerns/levelable.rb 
require 'active_support/concern' 

    module Levelable 
     extend ActiveSupport::Concern 

    included do 
    enum level: { beginner: 0, intermediate: 1, advanced: 2, very_advanced: 3 } 
    end 
end 

Und das Modell (verkürzt zur besseren Lesbarkeit)

#models/user.rb 
class User < ApplicationRecord 

    # Include default devise modules. Others available are: 
    # :confirmable, :lockable, :timeoutable and :omniauthable 
    devise :database_authenticatable, :registerable, :recoverable, :rememberable, :trackable, :validatable, :confirmable 

    include Levelable 

    acts_as_messageable 
end 

Dieses Setup Ergebnis ist ein: NameError: uninitialized constant User::Levelable gleicher Fehler tritt auf Client-Modell also denke ich, dass etwas nicht mit meiner belastung funktioniert. Ich habe bereits versucht, den Pfad innerhalb config/application.rb ohne Änderung automatisch zu laden.

Ich kann nicht herausfinden, wie man die Last der Concerns funktioniert, jede Hilfe wäre toll. Vielen Dank !

Antwort

0

Ich hatte dieses Problem vor einiger Zeit und nach einigem Graben fand ich heraus, dass meine Bedenken-Dateien mit dem Großbuchstaben-Formular benannt wurden (aus irgendeinem verrückten Grund).

Also habe ich sie umbenannt von Searchable.rb zu searchable.rb und es ist alles fertig! :)

PS. Wenn Sie git/github verwenden, unterscheidet das diff nicht zwischen Groß- und Kleinschreibung. Wenn Sie sie also von Levelable.rb in levelable.rb umbenennen, wird sie nicht in der git status angezeigt.

Prost

+0

Offensichtlich war das es. Danke für den Hinweis! – Patient55

Verwandte Themen