簡體   English   中英

Rails options_from_collection_for_select返回唯一的年份值

[英]Rails options_from_collection_for_select return unique year values

我正在使用它來選擇所有日期:

options_from_collection_for_select(ObjectModel.all, :id, :get_year)

這是我來自模型的get_year方法:

def get_year
  date_attr.strftime("%Y")
end

但是它將返回以下內容:

2015年

2015年

2015年

但是,我需要這幾年是獨一無二的。

我怎樣才能做到這一點?

如果無論從具有相同year屬性的記錄中獲取哪個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} 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM