Ruby on rails 如何使用2个模型用户/管理轨道创建Post模型?
我有两种型号(不是STI)Ruby on rails 如何使用2个模型用户/管理轨道创建Post模型?,ruby-on-rails,ruby,activerecord,Ruby On Rails,Ruby,Activerecord,我有两种型号(不是STI)User和Admin。现在我想用用户和管理员创建博客帖子(postmodel)。不可能吗?或者存在任何解决方案 我尝试了一些解决方案,如: 创建User和AdminUser(STI模型)(但我想要2个模型User/Admin) 创建Postwith(user\u id,admin\u id)(为空值似乎浪费了内存) 创建Post和AdminPost(STI模型)(但我认为这很难管理) 有人对此问题有经验或建议吗?非常感谢。也许多态模型会更好 Post可能属于将其与其
User
和Admin
。现在我想用用户和管理员创建博客帖子(post
model)。不可能吗?或者存在任何解决方案
我尝试了一些解决方案,如:
- 创建
User
和AdminUser
(STI模型)(但我想要2个模型User/Admin)
- 创建
Post
with(user\u id,admin\u id)(为空值似乎浪费了内存)
- 创建
Post
和AdminPost
(STI模型)(但我认为这很难管理)
有人对此问题有经验或建议吗?非常感谢。也许多态模型会更好
Post可能属于将其与其他模型(在本例中为用户和管理员)关联的关联。也许可以称之为“可邮寄的”
——或者更好的东西
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
class Post
您可以查看更多信息。也许多态模型会更好 Post可能属于将其与其他模型(在本例中为用户和管理员)关联的关联。也许可以称之为“可邮寄的”——或者更好的东西
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
class Post
您可以查看更多信息。“使用(用户id、管理员id)创建帖子(对于空值,这似乎浪费了内存)”。这可能是最直截了当的答案。您真的担心数据库中的
null
值吗?为什么这是一个重要的问题?是的,我想如果我有10000篇帖子(user\u id:1,admin\u id:null),它会占用我很多不必要的内存。是这样吗@Jvillian希望有专家参与进来。但是,我认为(基于一些快速研究)10000行对内存和存储的影响可以忽略不计。如果这是一个您认为最终可能会遇到的问题,那么我建议您(1)在尝试解决可能不存在的未来问题之前对其进行更多的研究,或者(2)着手解决您当前遇到的一些实际问题。“使用(user\u id,admin\u id)创建帖子(对于空值,这似乎会浪费内存)”。这可能是最直截了当的答案。您真的担心数据库中的null
值吗?为什么这是一个重要的问题?是的,我想如果我有10000篇帖子(user\u id:1,admin\u id:null),它会占用我很多不必要的内存。是这样吗@Jvillian希望有专家参与进来。但是,我认为(基于一些快速研究)10000行对内存和存储的影响可以忽略不计。如果这是一个你认为你最终可能会遇到的问题,那么我建议你要么(1)在试图解决一个不存在的、未来的问题之前进行更多的研究,要么(2)着手解决你目前面临的一些实际问题。