1

我在rails 4中,我正在尝试执行:

User.properties.where(:property_id => 2).first

这会产生一个我理解并知道为什么我不能这样做的 sql 错误。但我只想知道在 Rails 4 中使用 :has_many 关联通过外键查找的正确方法。

与此类似(显然有效):

Property.where(:id => 1).first 
4

2 回答 2

1

尝试这个:

User.joins(:properties).where('properties.id' => 2).first

如果您想急切加载属性,请includes使用joins.

于 2013-07-17T22:21:02.103 回答
0

The problem is that the where is in terms of the properties table, which I'm guessing doesn't have a property_id column.

You could do this:

user.properties.where(id: 2).first

A better way would probably be this, though:

user.properties.find(2)
于 2013-07-17T22:16:58.190 回答