Non capisco perché ciò che segue non funziona in Rails 3. Ricevo l'errore "variabile locale o metodo" custom_message "".Rails 3: messaggio di errore personalizzato in convalida
validates :to_email, :email_format => { :message => custom_message }
def custom_message
self.to_name + "'s email is not valid"
end
Ho anche provato ad utilizzare: message =>: custom_message invece come è stato suggerito in rails-validation-message-error posta senza fortuna.
: email_format è un validatore personalizzato si trova nella cartella lib:
class EmailFormatValidator < ActiveModel::EachValidator
def validate_each(object, attribute, value)
unless value =~ /^([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})$/i
object.errors[attribute] << (options[:message] || 'is not valid')
end
end
end
Posso duplicare il tuo errore usando il tuo codice esatto, ma quando lo cambio in ': message =>: custom_message' come suggerivi, l'errore scompare. – Dusty