Ton*_*ony 49 ruby validation model ruby-on-rails
我已经读过,errors.add_to_base应该用于与对象相关的错误,而不是特定的属性.我无法概念化这意味着什么.有人可以举例说明我何时想要使用它们?
例如,我有一个乐队模型,每个乐队都有一个流派.当我验证某种类型的存在时,如果该类型丢失,是否应该将错误添加到基类中?
越多的例子越好
谢谢!
GSP*_*GSP 107
值得注意的是(因为这显示在搜索引擎中,这就是我发现它的方式),这是不推荐使用的.Rails 3的做法是:
errors[:base] << "Error message"
Run Code Online (Sandbox Code Playgroud)
要么
errors.add(:base, "Error message")
Run Code Online (Sandbox Code Playgroud)
http://apidock.com/rails/ActiveRecord/Errors/add_to_base
http://apidock.com/rails/v3.2.8/ActiveModel/Errors/add
Jon*_*ern 33
在此示例中,您可以看到字段验证(必须选择团队).您可以看到类/基本级别验证.例如,您至少需要一种联系方式,电话或电子邮件:
class Registrant
include MongoMapper::Document
# Attributes ::::::::::::::::::::::::::::::::::::::::::::::::::::::
key :name, String, :required => true
key :email, String
key :phone, String
# Associations :::::::::::::::::::::::::::::::::::::::::::::::::::::
key :team_id, ObjectId
belongs_to :team
...
# Validations :::::::::::::::::::::::::::::::::::::::::::::::::::::
validate :validate_team_selection
validate :validate_contact_method
...
private
def validate_contact_method
# one or the other must be provided
if phone.empty? and email.empty?
errors.add_to_base("At least one form of contact must be entered: phone or email" )
end
end
def validate_team_selection
if registration_setup.require_team_at_signup
if team_id.nil?
errors.add(:team, "must be selected" )
end
end
end
end
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
61346 次 |
最近记录: |