我有2个模型(不是STI)User
和Admin
。现在我想用Post
创建博客帖子(User and Admin
模型)。这不可能吗?或者存在任何解决方案?
我尝试了一些解决方案:
创建User
和AdminUser
(STI模型)(但我希望有2个模型用户/管理员)
使用(user_id,admin_id)创建Post
(似乎浪费内存空值)
创建Post
和AdminPost
(STI模型)(但我认为很难管理)
任何人都有这个问题的经验或建议吗?非常感谢。
答案 0 :(得分:2)
也许多态模型会好吗?
帖子可能属于将其与其他模型(在本例中为“用户”和“管理员”)相关联的关联。也许称之为postable
- 或更好的东西。
class Post < ApplicationRecord
belongs_to :postable, polymorphic: true
end
class User < ApplicationRecord
has_many :posts, as: :postable
end
class Admin < ApplicationRecord
has_many :posts, as: :postable
end
您可以查看here了解详情。