Ruby on rails Rails:查找对另一个表的引用不为空的元素

Ruby on rails Rails:查找对另一个表的引用不为空的元素,ruby-on-rails,rails-activerecord,Ruby On Rails,Rails Activerecord,考虑可能有零个或多个变体的项目模型,如何找到第一个有一些变体的项目 class Item has_many :variations end 所以项。变量不是零。 比如: Item.with_not_nil_variations.first 内部联接可以为您执行以下操作: Item.joins(:variations).first 如果您的项有许多变体,您需要的是SQL内部联接 在rails中,您可以使用连接: Item.joins(:variations).first 生成的SQL将

考虑可能有零个或多个变体的项目模型,如何找到第一个有一些变体的项目

class Item
  has_many :variations
end
所以项。变量不是零。 比如:

Item.with_not_nil_variations.first

内部联接可以为您执行以下操作:

Item.joins(:variations).first

如果您的
有许多
变体
,您需要的是
SQL内部联接

在rails中,您可以使用
连接

Item.joins(:variations).first
生成的SQL将包含一个内部联接,这意味着它将返回具有变体的项。在第一个项目之前,您可以添加
order()
,这将允许您对将返回的第一个项目进行更多控制


不要使用
includes
,因为它被转换为一个左外联接,而且它肯定不是您想要的。

关系是如何实现的?项有很多变体