编辑日期字段 - RoR

时间:2011-04-12 20:07:24

标签: ruby-on-rails date

所有

是RoR的新手,因此需要一些指导w.r.t Date字段。
背景:

1&gt;我使用rails generate scaffold <Model> name:string remainderDate: date

创建了一个模型对象

2&gt;现在,当我使用rake db:migrate将模型部署到数据库并打开URL:localhost:3000/<Model>s/new时,显示的日期字段的格式为YYYY MM DD,所有3个单独的字段都带有下拉列表

YYYY值&gt; = 2006和&lt; = 2016
MM值> = 1月和&lt; = 12月(显而易见)
DD值> = 1且&lt; = 31

问题1
1 GT;将值设置到这些字段的代码在哪里?
2 - ;我可以将格式更改为MM DD YYYY吗?
3 GT;我可以限制添加到列表中的值吗?即,对于2011年,仅显示从4月开始的月份,并且只显示当天开始的日期 4&GT;我在哪里可以更改new表单的显示文字?我打开了new.html.erb,无法理解显示文本的设置位置。我还打开了_form.html.erb,找不到必要的更改?

2 个答案:

答案 0 :(得分:1)

关于日期字段的格式,您希望以rails已经存在的方式传递字符串,因为mysql接受它而不进行修改。也就是说,您当然可以更改用户在表单上输入新记录的数据的方式。在

中查找视图代码
app/views/<model>/_form.html.erb

答案 1 :(得分: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} %>

所以回答你的问题:

1 / Wes回答

2 /我的示例中的:order选项

3 /您只能使用选项中的start_year和end_year来查看年份,而不是月份或日期。您可以使用模型中的验证进一步限制。

4 /你对“新表格的显示文字”究竟是什么意思?你的意思是日期字段的显示文字吗?那将是&lt;%= f.label%&gt;

的旁边