如何使用2个模型User / Admin rails创建Post模型?

时间:2017-12-16 07:55:59

标签: ruby-on-rails ruby activerecord

我有2个模型(不是STI)UserAdmin。现在我想用Post创建博客帖子(User and Admin模型)。这不可能吗?或者存在任何解决方案?

我尝试了一些解决方案:

  • 创建UserAdminUser(STI模型)(但我希望有2个模型用户/管理员)

  • 使用(user_id,admin_id)创建Post(似乎浪费内存空值)

  • 创建PostAdminPost(STI模型)(但我认为很难管理)

任何人都有这个问题的经验或建议吗?非常感谢。

1 个答案:

答案 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了解详情。