Ruby on rails 不带*id的ActiveRecord查询

Ruby on rails 不带*id的ActiveRecord查询,ruby-on-rails,activerecord,Ruby On Rails,Activerecord,我有3个简单的模型: class User < ActiveRecord::Base has_many :subscriptions end class Product < ActiveRecord::Base has_many :subscriptions end class Subscription < ActiveRecord::Base belongs_to :user belongs_to :product end

我有3个简单的模型:

class User < ActiveRecord::Base
    has_many    :subscriptions
end

class Product < ActiveRecord::Base
    has_many    :subscriptions
end

class Subscription < ActiveRecord::Base
    belongs_to  :user
    belongs_to  :product
end
它向我抛出一个错误
未知列“subscriptions.product”
——它知道在第一种情况下我指的是产品id,但在后一种情况下它不知道。我只是想知道这是怎么回事,还是我遗漏了什么?我可以说

Subscription.where :product_id => a_product

是否必须指定
\u id

是的,现在您无法将关联传递给
where
方法。但是您可以在Rails 4中实现这一点。是一个具有此功能的提交。

我认为没有一个优雅的方法可以解决这个问题(现在,请参阅@nash的答案)。但是,如果您有一个
a_产品
的实例,并且它在
订阅
上有许多,为什么不把它转过来说:

subscriptions = a_product.subscriptions

是的,但我还需要使用其他搜索条件,这只是一个例子。
subscriptions = a_product.subscriptions