Ruby on rails 为rails 4中的date_字段设置默认值
我的应用程序中有几个表单,其中使用Ruby on rails 为rails 4中的date_字段设置默认值,ruby-on-rails,Ruby On Rails,我的应用程序中有几个表单,其中使用date\u选择,我刚刚改为使用date\u字段(使用HTML5表单元素)我唯一的问题是,date\u select将默认为今天的日期,这对我们来说非常合适,但是date\u字段将默认为dd/mm/yyyyy 我遇到了人们盲目提交表单并触发验证错误的问题 是否可以将日期字段默认为今天?您可以这样设置默认日期字段 date_field("user", "born_on", value: Time.now.to_s(:db)) <%= f.date_fiel
date\u选择
,我刚刚改为使用date\u字段
(使用HTML5表单元素)我唯一的问题是,date\u select
将默认为今天的日期,这对我们来说非常合适,但是date\u字段
将默认为dd/mm/yyyyy
我遇到了人们盲目提交表单并触发验证错误的问题
是否可以将日期字段默认为今天?您可以这样设置默认日期字段
date_field("user", "born_on", value: Time.now.to_s(:db))
<%= f.date_field :birthday, :value => Time.now.strftime('%Y-%m-%d') %>
如果您通过gem安装Rails4,它还存在以下错误 修复上面的问题,您可以像这样设置默认值
date_field("user", "born_on", value: Time.now.to_s(:db))
<%= f.date_field :birthday, :value => Time.now.strftime('%Y-%m-%d') %>
Time.now.strftime(“%Y-%m-%d”)%%>
这将正确运行:
<%= f.date_field :birthday, :value => Time.now.strftime("%Y-%m-%d") %>
Time.now.strftime(“%Y-%m-%d”)%%>
将时间对象用于日期字段对我不起作用,我必须使用日期对象
<%= f.date_field :birthday, placeholder: "YYYY-MM-DD", value: (f.object.birthday || Date.today.to_s(:db)) %>
在Rails for中,您还可以执行以下操作:
'Date.today%>如许多答案所示,设置:值将覆盖为任何正在编辑的记录传入的值。如果表单仅用于新条目,则这不是问题,但是如果要编辑表单中的记录,则会出现错误。解决这个问题的一种方法是明确地获取现有对象,正如Michael所建议的那样 我目前使用的解决方案是在控制器中,它在构建新记录时将值设置为今天。假设您的模型为Person,并且希望默认值为start_date:
def new
@person = Person.new(start_date: Date.current)
end
然后,您可以只使用表单中的值,而无需任何额外的麻烦
f.date_field :start_date
这些选项都不适用于我,我尝试使用
date\u field\u标签
所做的工作是这样传递值:
date\u field\u标记(:my\u thing\u end\u date,:end\u date,值:date.current.strftime(“%Y-%m-%d”)
从文件中()
默认值是通过尝试对对象的值调用“to_date”生成的,这使对象的行为符合DateTime和ActiveSupport::TimeWithZone实例的预期
因此,以用户输入的字符串形式传递日期似乎是解决方案
另外,根据这些关于日期和时区的好信息,
Date.current
比time更可取。today
:。你能在这里发布日期字段行吗。这对我也不起作用。无论你如何设置:值的格式,它都不会在字段中显示该日期,也不会在DOMDate中显示该日期。today对我起作用。Date\u f字段(“用户”,“出生”,值:Date.today.to_s(:db))