2011-06-20 7 views

risposta

16

Siete alla ricerca di validates_inclusion_of:

validates_inclusion_of :value, :in => [1, 2], 
    :message => "Select one of %{value}" 

È anche possibile utilizzare il (abbastanza nuovo) shothand forma e un intervallo invece di un array:

validates :value, :inclusion => { :in => 1..2 } 
+1

% {valore} è il valore che l'utente ha fornito, non nella lista di opzioni consentite ([1, 2]), come si fanno sembra. (Al momento sto cercando di capire come interpolare l'elenco delle opzioni consentite nel messaggio di errore ...) –

+1

BTW, ho trovato la risposta (come interpolare l'elenco delle opzioni consentite nel messaggio di errore) qui: http : //stackoverflow.com/a/8528139/47185 nel caso qualcuno sia interessato a –

13

se si desidera che sia un numero compreso tra 1 e 2 (1.5, 1.6839749, ecc.)

validates_numericality_of :value, :greater_than_or_equal_to => 1, :less_than_or_equal_to => 2, :message => "blah" 

non può essere quello che stai cercando, ma è degno di nota,

+1

Esattamente quello di cui avevo bisogno. Nessun'altra risposta ha gestito casi decimali. – Jon

Problemi correlati