我在rails 4中,我正在尝试执行:
User.properties.where(:property_id => 2).first
这会产生一个我理解并知道为什么我不能这样做的 sql 错误。但我只想知道在 Rails 4 中使用 :has_many 关联通过外键查找的正确方法。
与此类似(显然有效):
Property.where(:id => 1).first
我在rails 4中,我正在尝试执行:
User.properties.where(:property_id => 2).first
这会产生一个我理解并知道为什么我不能这样做的 sql 错误。但我只想知道在 Rails 4 中使用 :has_many 关联通过外键查找的正确方法。
与此类似(显然有效):
Property.where(:id => 1).first
尝试这个:
User.joins(:properties).where('properties.id' => 2).first
如果您想急切加载属性,请includes
使用joins
.
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)