我有两个模型 A 和 B,其中:
A has_one B
因此,我向 A 添加了一个外键,它将 A 的每个实例与 B 实例的 id 相关联。请注意,我确实知道希望这是一个 1-1 关系。
如何使用 A.find() 来获取与具有 B 的某个属性的 B 实例关联的所有 A 实例(例如 B.name)?
我知道这可以通过两个表之间的 SQL 连接来完成,但是在 ROR 中是否有一种优雅的方式来做到这一点?
我有两个模型 A 和 B,其中:
A has_one B
因此,我向 A 添加了一个外键,它将 A 的每个实例与 B 实例的 id 相关联。请注意,我确实知道希望这是一个 1-1 关系。
如何使用 A.find() 来获取与具有 B 的某个属性的 B 实例关联的所有 A 实例(例如 B.name)?
我知道这可以通过两个表之间的 SQL 连接来完成,但是在 ROR 中是否有一种优雅的方式来做到这一点?
假设您有正确的关联设置:
time_range = (Time.now.midnight - 1.day)..Time.now.midnight
Client.joins(:orders).where(:orders => {:created_at => time_range})
has_one
关联在归属模型中需要外键。请查看 RailsGuides - http://guides.rubyonrails.org/association_basics.html#the-has_one-association