我使用它来获取所有日期的选择:
options_from_collection_for_select(ObjectModel.all, :id, :get_year)
这是我的模型中的get_year方法:
def get_year
date_attr.strftime("%Y")
end
但它会归还:
2015
2015
2015
然而,我需要这些年才是独一无二的。
我该怎么做?
答案 0 :(得分:1)
如果无论具有相同年份属性的记录中的哪个ID必须采取,那么您可以这样做:
options_from_collection_for_select(ObjectModel.all.to_a.uniq{ |o| o.get_year}, :id, :get_year)
但更好的方法是更换这部分
ObjectModel.all.to_a.uniq{ |o| o.get_year}
使用范围检索数据库级别上的唯一(按年份)记录。这取决于您的数据库。
您可能还需要对记录进行排序。然后:
ObjectModel.order(:date_attr).uniq{ |o| o.get_year}