Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/52.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 如何使用2个模型用户/管理轨道创建Post模型?_Ruby On Rails_Ruby_Activerecord - Fatal编程技术网

Ruby on rails 如何使用2个模型用户/管理轨道创建Post模型?

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可能属于将其与其

我有两种型号(不是STI)
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)着手解决你目前面临的一些实际问题。