Ruby on rails 不带*id的ActiveRecord查询
我有3个简单的模型: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
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