我有这样的模型设置:
Sale
属于Product
Product
属于Varietal
现在我想为销售品种制作一个选择下拉过滤器。我设法做到这一点的唯一方法就是名字。
filter :product_varietal_name,
as: :select,
label: 'Varietal name',
collection: Varietal.names_for_select
但我希望能够按varietal_id
搜索,因为我在该列上有索引,它应该快得多。但是,我似乎无法这样做。
filter :product_varietal # undefined method `product_varietal_eq'
filter :product_varietal_id # undefined method `product_varietal_eq'
filter :product_varietal_id_eq # undefined method `product_varietal_id_eq_eq'
filter :product_varietal_eq # undefined method `product_varietal_eq_eq'
在过滤器名称末尾的_id
周围显然有一些魔力。而这种魔力并没有达到我的目的。
工作的唯一情况是关联在正在查看的模型上。因此Sale
属于Product
,filter :product
正如您所期望的那样工作。
那么如何在sale.product.varietal_id
上搜索选择框过滤器?