为什么我的年份显示小数位?

时间:2014-06-06 22:56:51

标签: ruby-on-rails

在我的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.02013.0等。为什么有小数位,我怎么能摆脱它?感谢。

1 个答案:

答案 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