2011-04-12 55 views
0

全部,編輯日期字段 - RoR

對於RoR是新的,因此需要一些指導w.r.t日期字段。
背景:

1>我創建使用rails generate scaffold <Model> name:string remainderDate: date

2>現在模型對象時我已經部署該模型使用rake db:migrate到DB和在打開的網址:localhost:3000/<Model>s/new,所顯示的日期字段是格式年月日,所有3個不同的領域與下拉與

YYYY值> = 2006和< = 2016
MM值> =一月< =月(明顯)
DD值> = 1和< = 31

問題1
1>其中是用於所述值設定爲這些字段中的代碼?
2>我可以將格式更改爲MM DD YYYY嗎?
3>我可以限制添加到列表中的值嗎?即在2011年,僅顯示從4月開始的月份,僅顯示當天開始的日期
4>我在哪裏可以更改new表單的顯示文本?我打開了new.html.erb,無法理解顯示文本的設置位置。我也打開了_form.html.erb並找不到必要的更改可以完成?

回答

1

尋找視圖代碼看看的語法date_select: http://api.rubyonrails.org/classes/ActionView/Helpers/DateHelper.html#method-i-date_select

在你的表格你會是這樣的:

<%= f.date_select :remainderDate, {:order => [:month, :day, :year],:prompt => true, :start_year => Time.now.year, :end_year => 2016} %> 

所以回答您quenstions :

1/as Wes回答

2 /在我的例子中的訂單選項

3 /您只能限制年份,而不是月份或日期的選項,正如您在示例中用start_year和end_year所看到的那樣。你在你的模型中進一步限制使用驗證。

4 /您對「新窗體的顯示文字」有什麼意思?你的意思是日期字段的顯示文字?這將是旁邊的<%= f.label%>

1

關於日期字段的格式,您希望以rails的方式傳遞字符串已經是因爲mysql不加修改地接受它。也就是說,你當然可以改變用戶在表單上輸入新數據的方式。在

app/views/<model>/_form.html.erb 
+0

嗯,我沒有看到任何'html.erb'文件中指定的格式。具體地講,這是我的'new.html.erb'看到:'

<%=渲染 '形式' %> <%=的link_to '後退', S_PATH%>' – 2011-04-12 20:20:59

+1

它實際上_form.html.erb,而不是new.html.erb,你會想看看。你會看到'date_select'。將其替換爲您自己的代碼以收集日期。 – 2011-04-13 01:49:25

+0

@布萊恩耶我一直忘記腳手架。感謝您的評論。我已經更新了答案。 – Wes 2011-04-13 03:03:49