我不明白为什么以下代码在Rails 3中无法正常工作。我收到了“未定义的局部变量或方法`custom_message'”的错误提示。
validates :to_email, :email_format => { :message => custom_message }
def custom_message
self.to_name + "'s email is not valid"
end
我也尝试使用:message => :custom_message,如rails-validation-message-error中所建议的那样,但没有成功。
:email_format是位于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
:message => :custom_message
时,错误消失了。 - Dusty