Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/22.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 Rails为具有多个关联的对象生成无效的sql查询_Ruby On Rails_Ruby_Associations - Fatal编程技术网

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 Memon
RecordBase
记录搜索工作正常,但是,当我尝试获取所有与
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 Memon
RecordBase
记录搜索工作正常,但当我尝试获取所有与
specific记录相关联的记录时,rails会尝试通过
assetable\u id
assetable\u type
来查找它们,其中
assetable\u id
是正确的,但sql查询中的
assetable\u type
记录基本
记录图像
记录具有
assetable\u类型
特定记录