1
我有一個帶有外鍵的模型。即使有一個數據庫限制可以防止重複的user_id
輸入SomeClass
的表格,但我仍然重複(預先知道)模型中的驗證,以便更加優雅地處理它。所以我的模型看起來像這樣:在Ruby on Rails模型中,爲什麼存在已驗證關聯但在外鍵上驗證了唯一性
class SomeClass < ActiveRecord::Base
belongs_to :user
validates_presence_of :user
validates_uniqueness_of :user_id
...
end
我花了一段時間才意識到這是它需要完成的。在我看來,ActiveRecord應該期望您在存在性和唯一性驗證方面始終如一地使用user
或user_id
。這將使:
validates :user, :presence => true, :uniqueness => true
或:
validates :user_id, :presence => true, :uniqueness => true
可能,這是最佳的,因爲它組的所有user
約束在一起的代碼的可維護性。那麼爲什麼它不一致呢?