在我的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]
你知道区别吗?如果一个比另一个好,你呢?
答案 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
所以,你应该使用你给出的第二个例子,它测试关联对象本身是否存在,而不是第一个例子,它只测试用于映射的外键该协会存在。