Rails 在下拉列表中显示独特的结果

Rails show uniq results in dropdown

我有一个数据库 table payments 有一个 PAYMENT 列,可以是现金、信用卡等。

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

目前为止我最好的是:

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

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

我用于该过滤器的语法与我用于过滤器关联的语法相同,而这不是。所以也许我过于复杂了,但我想不出任何其他解决方案。

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

我该如何解决?

尝试提取付款并对其应用 .uniq

如果您在 Payment 模型中有重复项,请不要采纳 :id 或 select 来自另一个 table 的付款,如果您有 PaymentTypePaymentMethod

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