1
我想實現多態關聯的驗證,我只希望它在某種類型上觸發。哪個是用戶。驗證多態關聯的唯一性
我想是這樣的:
validates :room_id, uniqueness: { scope: tokenable_id if tokenable type is User }
我怎麼去這樣做。另一種是客戶。我想讓這個機會成爲幾個。
我想實現多態關聯的驗證,我只希望它在某種類型上觸發。哪個是用戶。驗證多態關聯的唯一性
我想是這樣的:
validates :room_id, uniqueness: { scope: tokenable_id if tokenable type is User }
我怎麼去這樣做。另一種是客戶。我想讓這個機會成爲幾個。
我認爲你可以使用Conditional Validation
有時它纔有意義,只有當一個給定的 謂詞是滿足驗證的對象。您可以通過使用:if和:來做到這一點,除非可以使用符號,字符串,Proc或數組。當您想要指定何時應該發生驗證 時,您可以使用:if選項。如果你想指定何時驗證不應該發生,那麼你可以使用:unless選項。
5.1使用符號用:if和:除非
您可以關聯的:if和:除非有相應的方法的名稱會馬上叫一個符號 選項 驗證發生之前。這是最常用的選項。
class Order < ActiveRecord::Base
validates :room_id, uniqueness: { scope: :tokenable_id }, if: :is_right_type?
# or maybe this will work
validates :room_id, uniqueness: { scope: :tokenable_id }, if: :user?
def is_right_type?
type == "user"
end
end
請注意,您也可以給':if'字符串選項,例如, 'id:「type =='user'」' – eirikir