У меня есть две модели, Article и Post, которые обе наследуются от базовой модели, называемой ContentBase.
Вы можете оставлять комментарии как к статьям, так и к сообщениям, поэтому я использую полиморфную ассоциацию между комментариями и статьей или публикацией.
Однако, так как Article и Post наследуются от ContentBase, поле commentable_type в конечном итоге становится «ContentBase» для обоих и все испортило.
Есть ли способ указать поле commentable_type в отношении has_many в Article и Post?
Edit:
Под словом "все портит" я подразумеваю, если есть статья с ID = 1 и запись с ID = 1, и я добавляю комментарий с commentable_id = 1, commentable_type = ContentBase, этот комментарий будет отображаться как для статьи, так и для статьи. сообщение.
Вот код:
class Article < BaseContent
has_many :comments, :as => :commentable
end
class Post < BaseContent
has_many :comments, :as => :commentable
end
и вот моя модель комментариев:
class Comment < ActiveRecord::Base
belongs_to :commentable, :polymorphic => true
end