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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用2个模型User / Admin rails创建Post模型?相关的知识,希望对你有一定的参考价值。

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

我尝试了一些解决方案:

  • 创建UserAdminUser(STI模型)(但我希望有2个模型用户/管理员)
  • 使用(user_id,admin_id)创建Post(它似乎浪费内存为空值)
  • 创建PostAdminPost(STI模型)(但我觉得很难管理)

有没有人对此问题有经验或建议?非常感谢。

答案

也许多态模型会好吗?

Post可以属于将其与其他模型(在本例中为User和Admin)相关联的关联。也许称之为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了解更多信息。

以上是关于如何使用2个模型User / Admin rails创建Post模型?的主要内容,如果未能解决你的问题,请参考以下文章

Rails 使用同一命名空间中的模型作为 belongs_to 引用,如何从外部引用模型

如何将 Rails 脚本相互嵌套?

在Active Admin Rails中创建新项目时过滤下拉列表

Rails 3 - Active_admin 可以使用现有的用户模型吗?

将重复的SQL模型复制到Ruby on Rails postgresql模型中

在 Rails 中使用 user_id:integer 与 user:references 生成模型