在我的Ruby on Rails应用程序中,我有一个显示发票列表的页面。我想在屏幕顶部有一个选择框,用户可以选择年份,因此该页面只显示该年度的发票。我想用只有数据库中有发票的年份来填充选择框。它几乎按我想要的方式工作。
invoices_controller.rb:
def index
@invoices = Invoice.all.order("date_invoiced DESC")
@years = Invoice.uniq.pluck("EXTRACT(YEAR FROM date_invoiced)")
end
index.html.erb:
<%= select_tag 'year_filter', options_for_select(@years) %>
唯一的问题是我的年份显示为2014.0
,2013.0
等。为什么有小数位,我怎么能摆脱它?感谢。
答案 0 :(得分:0)
您今年的数据类型是什么?浮动?
如果是,您可以修改如下:
def index
@invoices = Invoice.all.order("date_invoiced DESC")
@years = Invoice.uniq.pluck("EXTRACT(YEAR FROM date_invoiced)")
@years = @years.map(&:to_i)
end
或类似的事情:
def index
@invoices = Invoice.all.order("date_invoiced DESC")
@years = Invoice.pluck(:date_invoiced).map{|x| x.year}.uniq.map(&:to_i)
end