2013-01-04 86 views
0

ActiveRecord的查詢我有3個簡單的模型:無* _id

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 

我可以做a_subscription.product = a_product和AR知道我的意思是PRODUCT_ID,一切工作正常。

但如果我這樣做:

Subscription.where :product => a_product 

它在我Unknown column 'subscriptions.product'拋出一個錯誤 - 它知道在我的意思的product_id第一種情況,但後者沒有。我只是想知道這是怎麼回事,或者我錯過了什麼?我可以通過說

Subscription.where :product_id => a_product 

我必須指定_id

回答

1

是的,現在您無法將關聯關聯到where方法。但是你可以在Rails 4中做到這一點。Here是一個提交此功能。

0

我不認爲有一個優雅的方式(截至目前,請參閱@nash的答案)。但是,如果你有a_product一個實例,並且對subscriptionshas_many,爲什麼不把它周圍,說:

subscriptions = a_product.subscriptions 
+0

是的,但還有其他的搜索標準,以及我需要使用,這僅僅是一個例。 – 0xSina