我使用:hstore
使用单表继承,如下所述:http://www.devmynd.com/blog/2013-3-single-table-inheritance-hstore-lovely-combination(基本上,继承模型的所有属性都存储在:hstore表中)
假设我有一个继承实体的类Person,并且包含与Person相关的信息的:hstore
表的名称被称为' info'。以下工作正常:
Person.create(name: 'TestUser', info: {"gender" => "male"})
但以下失败:
Person.where(name: 'TestUser', info: {"gender" => "male"}).first_or_create
失败是由以下SQL语句
引起的 SELECT "parties".* FROM "parties" WHERE "parties"."type" IN ('Person') AND "parties"."name" = 'Daniel' AND "information"."gender" = 'male'
错误是
missing FROM-clause entry for table "info"
有人知道是否有解决方法吗?我应该使用另一种方法吗?现在我使用find然后单独创建,这很好(只需要写几行)。
谢谢!