我正在尝试使用搜索过滤器中的关联范围; Contact
has_many Surveys
到Subscriptions
。我在下面创建了调查范围:
scope :score_in, -> (nps_type = nil) do
where(score: NPS_RANGE[nps_type])
end
NPS_RANGE = {
nil => [*0..10],
'detractor' => [*0..6],
'passive' => [7, 8],
'promoter' => [9, 10]
}
然而,当我执行Contact.ransack(surveys_score_in: 'detractor')
时,它不起作用,并根据0
而不是'string'.to_i == 0
进行查找。
我甚至将[*0..6]
定义为白名单,但它仍未运行。关于如何让Ransack使用这个范围的任何想法?