2015-09-10 35 views
0

我想通过模型的实例变量来确定模型的has_many关系。如何在has_many关联范围内访问模型的实例变量?

我有这样一个模型:

class Category < ActiveRecord::Base 
    has_many :products, -> { where(product_type: @product_type) } 
    attr_accessor :product_type 

然后我会做这样的事情:

category = Category.find(id) 
category.product_type = 'type' 
category.products # expected output: SELECT * FROM `products` ... WHERE `product_type` = 'type' 

在片段给,问题是,范围正在试图获得@product_typeActiveRecord::Relation而不是模型本身。

如何使其按照预期工作?

回答