在我们的Rails应用程序中,Post
资源可以由User
或Admin
组成。
因此,我们有一个名为Post
和belongs_to :author, polymorphic: true
的ActiveRecord模型类。
但是,在某些情况下,系统本身应该能够创建帖子。因此,我正在寻找一种添加例如System
为author
。
显然,将永远只有一个System
,因此它不会存储在数据库中。
[天真的尝试仅添加作者的class System; end
实例(例如单例实例)会返回NoMethodError: undefined method `primary_key' for System:Class
之类的错误。
解决这个问题的最干净的方法是什么?
有没有一种方法可以编写实际上不是数据库一部分的'伪'ActiveRecord模型?
在我们的Rails应用程序中,发布资源可以由用户或管理员创建。因此,我们有一个称为Post的ActiveRecord模型类,它具有一个属名:author,多态性:true。但是,在...
我认为有两种方法最有意义:
最后,我最终创建了不需要对数据库架构进行任何更改的以下“假”模型类。
它利用了一些元编程: