2017-08-08 23 views
0

我正在用Ruby on Rails 5編寫個人族譜應用程序,並使用:date數據類型輸入出生/死亡日期。這會導致日期的每個元素(年/月/日)的下拉菜單。在這一年,菜單默認的範圍爲過去五年(未來五年)(對於2017年,範圍從2012年到2022年)。但我需要有一個更大的範圍來覆蓋幾個世紀以來的幾年。如何在下拉菜單中定義我想要的特定年限範圍?在Rails 5中使用:date數據類型時,如何擴展下拉菜單中可用年數的範圍?

下面是從我schema.rb文件的摘錄(刪除等領域爲簡潔起見):

create_table "people", force: :cascade do |t| 
    t.date "birth_date" 
    t.date "death_date" 
end 

下面是從我的觀點文件摘錄(再次,刪除等領域爲簡潔起見):

<div class="booyah-box col-10 offset-1"> 

    <h1>Edit Your Person Details</h1> 
    <%= simple_form_for @person do |f| %> 

    <%= f.input :birth_date %> 
    <%= f.input :death_date %> 

    <%= f.submit 'Update', class: 'btn btn-primary' %> 
    <% end %> 

</div> 

我還要補充我需要一種方法來有一個「別無選擇」型選項,比如對於那些仍然生活,因爲他們不會有

我已經搜查StackOverflo死亡日期w並沒有找到適用的答案,但是如果這裏已經有一個答案,請指向我。在此先感謝您的幫助。

+0

您是如何創建當前下拉菜單的?你能顯示你的代碼嗎? – Gerry

+0

我是新來的stackoverflow,所以我不知道如何在評論中添加代碼,所以它很好地格式化... –

+0

將它們添加到問題,而不是;你可以點擊**編輯**添加更多信息。 – Gerry

回答

1

您可以在您的視圖中指定日期input中的start_yearend_year;例如:

<div class="booyah-box col-10 offset-1"> 

    <h1>Edit Your Person Details</h1> 
    <%= simple_form_for @person do |f| %> 

    <%= f.input :birth_date, start_year: Time.now.year - 10, end_year: Time.now.year + 10 %> 
    <%= f.input :death_date, start_year: Time.now.year - 10, end_year: Time.now.year + 10, prompt: "-" %> 

    <%= f.submit 'Update', class: 'btn btn-primary' %> 
    <% end %> 

</div> 

在這個例子中,我添加從當前日起10年和當前的日期後的10年,但你可以使用任何你需要的範圍內。

+0

謝謝,那有效。而且我可以將開始/結束年份設置爲絕對值(如1700)。你知道一個簡單的方法來允許「無選擇」類型的選項,所以我可以離開死亡日期空白? –

+0

@elbereth是的,您可以爲'start_year'和/或'end_year'使用絕對值。此外,您可以添加*「無選擇」*選項,但它將被添加到所有字段,即年,月和日;做它只需添加屬性',提示:「 - 」'。檢查一個例子的更新答案(我在'death_date'上添加了它)。 – Gerry

+0

請注意,我在'prompt'中使用'' - 「',但是您可以使用任何字符串作爲消息顯示空白選項。 – Gerry

相關問題