我有一個擁有has_one關係的對象。更具體地說,這裏是關係:如何保護Rails關聯(防止覆蓋)
class Product < ActiveRecord::Base
has_one :domain
end
class Domain < ActiveRecord::Base
belongs_to :product
end
這是一個很基本的關聯。然而,我試圖找出一些方法來防止一個關聯的壓倒一切。
比方說,我有一個產品的域名爲「google.com」,後面跟着一個試圖保存爲「google.com」的新產品。我想第二個失敗。
關於如何提供此關聯驗證的任何想法?
這表明,也許你的has_one和belongs_to關聯是向後的。這裏有一個更長的解釋:當你回答下面的建議(關於使用驗證)時,你說「關聯的字段(域)仍然是唯一的......」但是關聯的has_one一方不應該有一個域字段。相反,域側會有一個product_id(如上面的代碼所承認的)。如果您改爲調換has_one/belongs_to關聯的方向,則可以使用正常的驗證方法。 – don 2013-04-09 21:34:42
@謝謝您的回覆。但請注意一點,如果你仔細想想:一個域名屬於某個產品。我是否應該配置關聯只是因爲它給了我一些驗證? – 2013-04-10 14:54:28