2
我有一個自定義驗證,可以確保我在HABTM關聯中沒有太多關聯。下面是在Request
模型創建新關聯時Rails驗證不運行
validate :max_tags
MAXIMUM_AMOUNT_OF_TAGS = 5
def max_tags
debugger
unless tags.count < MAXIMUM_AMOUNT_OF_TAGS
errors[:base ] << "You cannot have more than #{MAXIMUM_AMOUNT_OF_TAGS} tags on this gift request."
end
end
驗證,這個驗證每當我創建一個新的Request
運行;但是,只要我創建tags
並將其與Request
關聯,它就不會執行。這裏是創造新的協會
if @request.save
if tags
tags.each do |tag|
tag = Tag.find_by_name(tag)
if tag
self.tags << tag
tag.increment_gift_request_count
end
end
end
end
你說你是使用habtm。在這種情況下,根據文檔,'<<'立即激發SQL更新,所以不會在父對象中運行驗證。 – jvnill