首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Ruby on Rails: errors.add_to_base与errors.add

Ruby on Rails: errors.add_to_base与errors.add
EN

Stack Overflow用户
提问于 2009-04-01 17:15:30
回答 3查看 70.4K关注 0票数 57

我读到过errors.add_to_base应该用于与对象相关的错误,而不是特定的属性。我在理解这意味着什么时遇到了困难。有没有人能举个例子说明我什么时候会用到这两种语言?

例如,我有一个Band模型,每个Band都有一个流派。当我验证某个流派是否存在时,如果缺少该流派,是否应该将错误添加到库中?

例子越多越好

谢谢!

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2009-04-01 17:26:39

缺少类型将是一个字段错误。基本错误类似于现有记录的精确副本,其中问题不是与任何特定字段有关,而是与整个记录有关(或至少与字段的某种组合有关)。

票数 39
EN

Stack Overflow用户

发布于 2012-12-06 04:22:12

值得注意的是(因为它在搜索引擎中显示出来,这就是我找到它的方式),它被弃用了。Rails 3的方法是:

代码语言:javascript
复制
errors[:base] << "Error message"    

代码语言:javascript
复制
errors.add(:base, "Error message")

http://apidock.com/rails/ActiveRecord/Errors/add_to_base

http://apidock.com/rails/v3.2.8/ActiveModel/Errors/add

票数 113
EN

Stack Overflow用户

发布于 2010-11-02 04:27:08

在本例中,您可以看到字段验证(必须选择team)。您可以看到类/基级验证。例如,您至少需要一种联系方式,即电话或电子邮件:

代码语言:javascript
复制
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
票数 34
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/706533

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档