【发布时间】:2018-01-20 17:26:51
【问题描述】:
使用 ActiveRecord 关系,我设置了一个域,通过它我无法找出正确的查询来检索所需的信息。这可能不是理想的模型,但对于我的项目,我需要使用包含关系信息的连接模型。
我想过滤连接表,只返回状态为dealership_vehicles.is_lot_ready = 'f' 或't' 的车辆。无论哪种方式,我想出的最接近的事情就是查询
SELECT *
FROM vehicles
INNER JOIN dealership_vehicles ON vehicles.dealership_vehicle_id = dealership_vehicles.id
WHERE dealership_vehicles.is_lot_ready = false;
起初我认为它有效,但在调查数据后,它带回了太多结果,当查询更改为“f”时,它没有带回任何数据。
我不知道为什么,任何建议将不胜感激。
class Dealership < ApplicationRecord
has_many :dealership_vehicles
has_many :vehicles, :through => :dealership_vehicles
class Vehicle < ApplicationRecord
belongs_to :dealership_vehicle
has_one :dealership, :through => :dealership_vehicle
class DealershipVehicle < ApplicationRecord
belongs_to :dealership
has_many :vehicles
以及表格中的以下数据:
vehicles
id | make | model | year | dealership_vehicle_id | created_at | updated_at
1 | BMW | M3 | 2016 | 1 | 2018-01-20 16:59:13.196586 | 2018-01-20 16:59:13.196586
2 | Toyota | Corolla | 2016 | 2 | 2018-01-20 16:59:13.1998 | 2018-01-20 16:59:13.1998
dealerships
id | name | city | created_at | updated_at
1 | Ereve | Lith Harbor | 2018-01-20 16:59:13.067827 | 2018-01-20 16:59:13.067827
2 | Rien | Ellinia | 2018-01-20 16:59:13.070359 | 2018-01-20 16:59:13.070359
dealership_vehicles
id | dealership_id | is_lot_ready | buyer | price | created_at | updated_at | permission
28 | 4 | f | Randy | 30099 | 2018-01-20 16:59:13.183475 | 2018-01-20 16:59:13.183475 |
27 | 3 | t | Philip | 30099 | 2018-01-20 16:59:13.180412 | 2018-01-20 16:59:13.180412 |
【问题讨论】:
标签: sql ruby-on-rails activerecord