2011-04-12 56 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