我试图通过相关模型的值过滤我的模型。 (我试图通过商店过滤我的变种,这是一种产品关联。
class Variant < ActiveRecord::Base
belongs_to :product
def self.by_store_id(store_id)
where(:product => {:store_id => store_id})
end
###
class Product < ActiveRecord::Base
belongs_to :store
class Store < ActiveRecord::Base
has_many :products
每次尝试此操作时,都会收到此错误:
ActiveRecord :: StatementInvalid(SQLite3 :: SQLException:没有这样的列: product.store_id:SELECT COUNT(*)FROM&#34; variant_skus&#34;内部联接 &#34;产品&#34; ON&#34;产品&#34;。&#34; id&#34; =&#34; variant_skus&#34;。&#34; product_id&#34;哪里 &#34;产品&#34;&#34; STORE_ID&#34; =?)
为什么我收到此错误? Store_id绝对是我产品表上的一列。
答案 0 :(得分:1)
该表已定义,但由于它名为products
,因此无法找到带有product
前缀的列。您可以在方法中使用where('products.store_id = ?', store_id)
。