Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ssl/3.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 带默认作用域的急加载关联导致表别名不正确_Ruby On Rails_Postgresql_Activerecord - Fatal编程技术网

Ruby on rails 带默认作用域的急加载关联导致表别名不正确

Ruby on rails 带默认作用域的急加载关联导致表别名不正确,ruby-on-rails,postgresql,activerecord,Ruby On Rails,Postgresql,Activerecord,我有3种型号: class Company has_many :products has_many :variants, through: :products end class Product acts_as_paranoid belongs_to :company has_many :variants end class Variant acts_as_paranoid belongs_to :product end 我使用的是paranoia gem,它为

我有3种型号:

class Company
  has_many :products
  has_many :variants, through: :products
end

class Product
  acts_as_paranoid
  belongs_to :company
  has_many :variants
end

class Variant
  acts_as_paranoid
  belongs_to :product
end
我使用的是paranoia gem,它为每个模型添加了一个默认范围:

default_scope { where deleted_at: nil }
当我尝试执行查询时:

company.variants.includes(:product).references(:products).where('products.name ilike ?', "%test%")
我得到一个错误:

PG::UndefinedTable-错误:对表产品的FROM子句条目的引用无效 第1行:…ucts_variants.id=variants.product_id和产品。。。 ^ 提示:您可能想引用表别名products\u变量

完整查询:

选择COUNT*FROM variants内部连接产品产品产品产品产品产品上的变体。id=variants.product\u id和products.deleted\u at为空价格上的内部连接价格。variant\u id=variants.id内部连接产品上的变体。product\u id=products.id,其中variants.deleted\u at为空,products.deleted\u at为空,products.company\u id=一美元

如果我从产品和变型模型中删除了acts_as_paranoid,它就可以正常工作。我猜表上的条件会导致AR创建一个表别名。这是rails中的一个bug吗?我怎样才能修好它?谢谢