Rails在下拉列表中显示uniq结果

时间:2016-11-15 04:48:06

标签: ruby-on-rails ransack

我有一个数据库表payments,其中包含PAYMENT列,可以是现金,卡等。

在我的付款索引视图中,我想添加一个过滤器,按付款类型过滤结果。

我到目前为止最好的是:

<%= f.select :PAYMENT_eq, options_from_collection_for_select(Payment.uniq, :ID, :PAYMENT, @q.PAYMENT_eq), {:include_blank => true}, {class: 'myselect'} %>

显示付款类型的下拉列表。问题是它为每一行返回一个选项。例如,如果我有10笔支付类型的现金支付,在下拉列表中我会看到10个期权现金。

我用于该过滤器的语法与用于过滤关联的语法相同,但事实并非如此。所以也许我过于复杂,但我想不出任何其他解决方案。

我尝试过Payment.uniq,但它不起作用。

我该如何解决?

1 个答案:

答案 0 :(得分:1)

尝试拨打付款并在其上应用.uniq

如果您在Payment型号中有重复项,请不要:id,或者如果您有PaymentTypePaymentMethod

<%= f.select :PAYMENT_eq, options_for_select(Payment.pluck(:PAYMENT).uniq, @q.PAYMENT_eq), {:include_blank => true}, {class: 'myselect'} %>