使用或不使用范围 rails
To use a scope or not use a scope rails
我有两个表,People 和 Vehicles。车是人的。
我有一个 report/query 可以显示哪些人没有车。我试图将它合并到我的 rails 应用程序中,以便它在有人想要查看此信息时运行。我决定为它编写一个范围,但无法使范围正常工作。代码如下。有什么想法吗?
scope :person_has_no_vehicle, -> { joins(:vehicles).where('Vehicles.person_id IS NULL')}
查询如下
SELECT DISTINCT
People.ID,
People.nam_first,
People.nam_last
FROM
People
LEFT JOIN Vehicles ON People.ID = Vehicles.person_id
WHERE
Vehicles.person_id IS NULL
joins
方法总是执行 INNER JOIN
,但您原来的 SQL 查询使用 LEFT JOIN
.
scope :person_has_no_vehicle, -> { joins("LEFT OUTER JOIN vehicles ON vehicles.person_id = people.id").where('Vehicles.person_id IS NULL')}
我有两个表,People 和 Vehicles。车是人的。
我有一个 report/query 可以显示哪些人没有车。我试图将它合并到我的 rails 应用程序中,以便它在有人想要查看此信息时运行。我决定为它编写一个范围,但无法使范围正常工作。代码如下。有什么想法吗?
scope :person_has_no_vehicle, -> { joins(:vehicles).where('Vehicles.person_id IS NULL')}
查询如下
SELECT DISTINCT
People.ID,
People.nam_first,
People.nam_last
FROM
People
LEFT JOIN Vehicles ON People.ID = Vehicles.person_id
WHERE
Vehicles.person_id IS NULL
joins
方法总是执行 INNER JOIN
,但您原来的 SQL 查询使用 LEFT JOIN
.
scope :person_has_no_vehicle, -> { joins("LEFT OUTER JOIN vehicles ON vehicles.person_id = people.id").where('Vehicles.person_id IS NULL')}