4

我正在使用 Ruby on Rails v3.2.2 并且在发布我之前的问题之后,我想知道并了解是否(或不)显式验证与相关的外键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

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

4

1 回答 1

3

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

validates_presence_of :article, :category

我不确定它是否绝对必要,但这会阻止您仅保存部分关联。在正常的 Rails 使用中很难创建部分关联,但这样就不会发生。

此外,您不需要foreign_key这些关联中的任何一个,只需

belongs_to :article, :category
于 2012-11-12T15:44:31.663 回答