2016-06-10 8 views
0

Ich habe zwei Klasse Customer und Passenger (wer im Flug) mit gleichem Attribut Geschlecht. Also in der Kundenklasse deklariere ich enum geschlechtEnum für zwei Klasse

class Customer < ActiveRecord::Base 
    enum GENDER: {MALE: 1, FEMALE: 2} 
end 

Und diese enum wird auch von der Passagierklasse verwendet.

Was ist die beste Vorgehensweise in diesem Fall? Sollte ich diese Aufzählung in eine andere Klasse (zum Beispiel: GenderHelper) teilen?

Wenn ja, wie kann ich enum in der Hilfsklasse deklarieren? Vererbung von ActiveRecord :: Base wie ein Modell?

Antwort

1

Sie können einen Fehler erstellen und ihn sowohl in Customer als auch in Passenger einfügen.

app/models/Anliegen/gender.rb

module Gender 
    extend ActiveSupport::Concern 

    included do 
    enum GENDER: {MALE: 1, FEMALE: 2} 
    end 
end 

app/models/customer.rb

class Customer < ActiveRecord::Base 
    include Gender 
end 
+0

Also meinen Sie, wenn ich Geschlecht ENUM nutzen will, muss ich B. Customer.GENDERs [: MALE] und Passenger.GENDER [: MALE]. Ist das eine gute Praxis für die Verwendung von Common Enum? –

+0

Fazit, die Enum muss zu einem ActiveRecord-Klasse gehören, richtig? –