我有一个数据库表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,但它不起作用。
我该如何解决?
答案 0 :(得分:1)
尝试拨打付款并在其上应用.uniq
如果您在Payment
型号中有重复项,请不要:id
,或者如果您有PaymentType
或PaymentMethod
<%= f.select :PAYMENT_eq, options_for_select(Payment.pluck(:PAYMENT).uniq, @q.PAYMENT_eq), {:include_blank => true}, {class: 'myselect'} %>