1
我想要一個類通過多態關聯屬於其他類。Rails多態關聯:限制允許的類
什麼是最好的方式來限制關聯到一個特定的類列表?
我正在考慮使用自定義的驗證方法,像這樣,但我不知道這是否真的是最好的主意:
class Feature < ActiveRecord::Base
belongs_to :featureable, polymorphic: true
validate :featurable_is_of_allowed_class
FEATURABLE_CLASSES = ["Country", "City", "Store", "Product"]
def featurable_is_of_allowed_class
if !FEATURABLE_CLASSES.include? featurable.class.name
errors.add(:featurable, "class not allowed for association")
end
end
end
如果您希望該類拋出一個錯誤,或者當另一個類具有'has_many:features'時出現某種錯誤,這是不可能的。 –