Rails验证和belongs_to关联

时间:2015-05-19 22:27:51

标签: ruby-on-rails validation

在我的rails项目中,我有很多关联表。我有一些验证。没有什么比这更难了,而且几乎每次都有效。

但不时(如今晚),我必须从

切换
urn:ietf:wg:oauth:2.0:oob

  validates_presence_of :project_id
  validates_presence_of :tag_id

  validates_uniqueness_of :project_id, :scope => [:tag_id]
你知道区别吗?如果一个比另一个好,你呢?

1 个答案:

答案 0 :(得分:2)

来自Rails指南:http://guides.rubyonrails.org/active_record_validations.html#presence

  

2.9 presence此帮助程序验证指定的属性是否为空。它使用空白?检查值是否为的方法   nil或空字符串,即空字符串或空字符串   由空格组成。

class Person < ActiveRecord::Base
  validates :name, :login, :email, presence: true  
end
  

如果您想确定存在关联,您需要   测试关联对象本身是否存在,而不是   用于映射关联的外键

class LineItem < ActiveRecord::Base
  belongs_to :order
  validates :order, presence: true
end

所以,你应该使用你给出的第二个例子,它测试关联对象本身是否存在,而不是第一个例子,它只测试用于映射的外键该协会存在