【发布时间】:2010-09-20 20:14:05
【问题描述】:
我不明白为什么以下内容在 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时,错误就会消失。
标签: validation forms ruby-on-rails-3 activemodel