Ruby on rails Rails为具有多个关联的对象生成无效的sql查询
我有一个像下面这样的模型Ruby on rails Rails为具有多个关联的对象生成无效的sql查询,ruby-on-rails,ruby,associations,Ruby On Rails,Ruby,Associations,我有一个像下面这样的模型 # Base model class RecordBase < ActiveRecord::Base self.table_name = 'records' has_many :record_images, as: assetable, dependent: :destroy fileuploads :record_images end # Inherited model class SpecificRecord < RecordBase
# Base model
class RecordBase < ActiveRecord::Base
self.table_name = 'records'
has_many :record_images, as: assetable, dependent: :destroy
fileuploads :record_images
end
# Inherited model
class SpecificRecord < RecordBase
end
# Image model
class RecordImage < ActiveRecord::Base
include Uploader::Asset
belongs_to :assetable, polymorphic: true
end
#基本模型
类RecordBase
我正在使用上传文件。我在数据库中有RecordImage
模型的记录,其assetable\u id
对应于specifirecord
记录和assetable\u类型
'specifirecord'
但当我尝试specifirecord.find(一些\u id.),在控制台中记录图像时,rails使用assetable\u类型构建sql查询
'RecordBase'
,因此什么也找不到。如何在sql查询中指定哪个assetable\u类型
更新
这是关于rails uploader
gem的问题,在版本“0.2.8”中,gem使用子类的assetable\u类型
重新定义并将数据保存到db,但在版本“0.4.5”中,资产使用基类的assetable\u类型
保存到db,我不认为这是一个问题,因为id
在生成的RecordBase中是唯一的。find(1)
等于SpecificRecord。find(1)
@Md.Farhan MemonRecordBase
记录搜索工作正常,但是,当我尝试获取所有与SpecificRecord
records关联的内容时,rails会尝试通过assetable\u id
和assetable\u type
来查找它们,其中assetable\u id
是正确的,但是sql查询中的assetable\u type
是RecordBase
但是RecordImage
记录具有assetable\u type
特定记录
,因为它是一个STI,我不认为这是一个问题,因为id
将在结果RecordBase.find(1)
中是唯一的(1)@Md.Farhan MemonRecordBase
记录搜索工作正常,但当我尝试获取所有与specific记录相关联的记录时,rails会尝试通过assetable\u id
和assetable\u type
来查找它们,其中assetable\u id
是正确的,但sql查询中的assetable\u type
是记录基本
但记录图像
记录具有assetable\u类型
特定记录