Hinzufügen eines Fehlers mit before_save-callback-oder benutzerdefinierten validator?

Habe ich ein Modell Listing dass belongs_to :user. Alternativ User has_many :listings. Jede Liste hat ein Feld Kategorie, klassifiziert es (Hunde, Katzen, etc). Die User hat auch ein boolean Feld mit dem Namen is_premium.

Hier ist, wie ich bin Validierung der Kategorie...

validates_format_of :category,
                    :with => /(dogs|cats|birds|tigers|lions|rhinos)/,
                    :message => 'is incorrect'

Sagen wir mal ich will nur zulassen premium Benutzer in der Lage sein, um hinzuzufügen Tiger, Löwen, und Nashörner. Wie würde ich das angehen? Wäre es am besten, es zu tun in einer before_save Methode?

before_save :premium_check

def premium_check
  # Some type of logic here to see if category is tiger, lion, or rhino.
  # If it is, then check if the user is premium. If it's not, it doesn't matter.
  # If user isn't premium then add an error message.
end

Vielen Dank im Voraus!

Nein, es wird nicht funktionieren. Ich denke, man sollte eher die benutzerdefinierte validator-statt.

InformationsquelleAutor gbdev | 2013-10-23

Schreibe einen Kommentar