Hallo,

wie kann man es denn am besten bewerkstelligen, verschiedene Fälle von 
Validierungen zu definieren?

Ich habe ein z.B. ein User-Model das beim Zugriff durch den Administrator 
anders validiert werden soll, als wenn der Nutzer es verwendet.

So soll etwa, wenn der Nutzer darauf zugreift, die Telefonnummer verlangt 
werden. Wenn der Administrator einen Nutzer anlegt oder bearbeitet, soll dies 
jedoch nicht überprüft werden.

Mir ist bisher nichts besseres eingefallen als eine Kombination aus einem 
virtuellen attribut als Schalter (der im jeweiligen Controller „angeknipst“ 
wird) und der if-Bedingung in der Validierung:

class CustomerUser < ActiveRecord::Base

  validates :telephone, :presence => true, :if => lambda{ |u| 
u.validate_for_user? }

  attr_writer :validate_for_user
  
  def validate_for_user?
    @validate_for_user
  end

end

Mir erscheint das nicht sehr elegant. Vor allem wird es, bei vielen 
Validierungen sehr schnell unübersichtlich. Vielleicht kennt ja jemand eine 
bessere Lösung.

Viele Grüße

Michael Kastner
_______________________________________________
rubyonrails-ug mailing list
rubyonrails-ug@headflash.com
http://mailman.headflash.com/listinfo/rubyonrails-ug

Antwort per Email an