我正在使用Ruby on Rails v3.2.2,在发布我的previous question之后,我想知道并理解是否(或不)显式验证与{相关的外键需要{1}}。例如:
ActiveRecord::Associations
是否需要上述class CategoryAssociation < ActiveRecord::Base
belongs_to :article, :foreign_key => 'article_id'
belongs_to :category, :foreign_key => 'category_id'
validates :article_id, :presence => true, :numericality => { :only_integer => true }
validates :category_id, :presence => true, :numericality => { :only_integer => true }
end
方法 ?为什么呢?
答案 0 :(得分:3)
我不会像你那样做,但我会这样做:
validates_presence_of :article, :category
我不确定它是否绝对必要,但是这会阻止您仅保存部分关联。在普通的铁路使用中很难创建部分关联,但这种情况不会发生。
此外,您不需要foreign_key
这两个关联,只需
belongs_to :article, :category