我在想,如果我能有一個多態關聯,也存在驗證與驗證態關聯[它甚至有可能嗎?]
比方說,我有一個business
模型和address
模型,address
是多態
class Business< ActiveRecord::Base
has_one :address, as: :addressable
validates_presence_of :address
end
class Address< ActiveRecord::Base
belongs_to :addressable, polymorphic: true
end
是否可以驗證validates_presence_of :address
?使用此設置創建對象時遇到問題。
比方說,第一,我創建一個業務對象,這樣
b = Business.new(name: "Hello23")
b.address = Address.new(street: "House 43 BCD")
b.save!
這是行不通的。它給出了一個undefined method constantize for 0:Fixnum
,它給出了一個錯誤是有道理的,因爲當它試圖將地址保存到db時,它找不到可尋址的id,因爲業務還沒有保存,並且沒有分配給id它。
但是這不可能從另一方的任何一方 - 我無法在沒有地址的情況下保存業務。
處理這種情況的最佳方法是什麼?
****除了這個,如果我也想對地址側的驗證這樣什麼**
validates_presence_of :addressable
我一直在掙扎着這一切約2天。讓我們看看你有什麼想法嗎?**
這不是列類型的問題,但您確信驗證代碼是正確的,這有助於我認爲「還有什麼可能是錯誤的」,我終於想到了。感謝buddy – Abid
OMG你該死的正確的人..今天大約一個星期的這段代碼工作後..我被另一個奇怪的錯誤感到驚訝,只是意識到你是對的我錯誤地將地址表中的addressable_type列設置爲整數不是字符串。剛回來留下這個評論,再次感謝你:)。 – Abid
沒有probs,也許接受的答案:) –