是否真的需要validation外键?

我正在使用Ruby on Rails v3.2.2,在发布我之前的问题之后 ,我想知道并理解是否(或不) 显式validation与ActiveRecord::Associations相关的外键是否需要。 例如:

 class CategoryAssociation  '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 

真的需要以上validates方法吗? 为什么?

我不会像你那样做,但我会这样做:

 validates_presence_of :article, :category 

我不确定它是绝对必要的,但是这会阻止你只保存部分关联。 在正常的rails使用中很难创建部分关联,但这种方式不会发生。

此外,您不需要在这些关联中使用foreign_key

 belongs_to :article, :category