當使用class_name
時,如何檢查實例是否不是類的類型,而是您給類的名稱的類型?Rails - 使用is_a? with class_name
class User < ActiveRecord::Base
has_one :dog1, class_name: 'Dog', foreign_key: 'dog_id', dependent: :destroy
has_one :dog2, class_name: 'Dog', foreign_key: 'dog_id', dependent: :destroy
end
換句話說,你如何檢查是否@dog
是dog1
,而不是一個dog2
?
@dog = Dog.find_by(name: 'Gnasher')
if @dog.is_a?(dog1)
# do some stuff
end
嘗試'繼承和is_a @ dog.class.model_name'不知道,雖然 – Pavan
我敢肯定你想要'@狗==狗1'。或者,至少,'@ dog.id == dog1.id' –
我不認爲這會起作用,因爲有很多'dog1's,每個屬於不同的用戶。 – Bazley