Мой вопрос по существу тот же, что и этот: Полиморфная ассоциация с несколькими ассоциациями на одной и той же модели
Однако предлагаемое/принятое решение не работает, как проиллюстрировано комментатором позже.
У меня есть класс Photo, который используется во всем моем приложении. У сообщения может быть одна фотография. Тем не менее, я хочу повторно использовать полиморфное отношение для добавления вторичной фотографии.
До:
class Photo
belongs_to :attachable, :polymorphic => true
end
class Post
has_one :photo, :as => :attachable, :dependent => :destroy
end
Желаемая:
class Photo
belongs_to :attachable, :polymorphic => true
end
class Post
has_one :photo, :as => :attachable, :dependent => :destroy
has_one :secondary_photo, :as => :attachable, :dependent => :destroy
end
Однако это не удается, поскольку он не может найти класс "SecondaryPhoto". Основываясь на том, что я мог сказать из этой другой темы, я бы хотел:
has_one :secondary_photo, :as => :attachable, :class_name => "Photo", :dependent => :destroy
Кроме вызова Post # secondary_photo просто возвращает ту же фотографию, которая прикреплена через ассоциацию фотографий, например. Сообщение # фото === Сообщение # secondary_photo. Глядя на SQL, он делает WHERE type = "Photo" вместо, скажем, "SecondaryPhoto", как мне хотелось бы...
Мысли? Спасибо!