我在我的应用程序中有一些表单,其中使用date_select和我刚刚更改为使用date_field(使用HTML5表单元素)我唯一的问题是date_select默认为今天的日期对我们来说是完美的但是date_field默认为dd/mm/yyyy代替.
我遇到的问题是人们盲目地提交表单并触发验证错误.
是否有可能默认date_field为今天?
小智 20
如果你通过gem安装了Rails4,它还有bug.
修复上面,您可以像这样设置默认值
<%= f.date_field :birthday, :value => Time.now.strftime('%Y-%m-%d') %>
Run Code Online (Sandbox Code Playgroud)
正如许多答案所暗示的那样,设置 :value 将覆盖为正在编辑的任何记录传入的值。如果表单仅用于新条目,这不是问题,但如果您想编辑表单中的记录,则有问题。解决这个问题的一种方法是明确地抓取现有对象,正如迈克尔建议的那样。
我当前使用的解决方案是在控制器中,它在构建新记录时将值设置为今天。假设您的模型是 Person,并且您想要默认的值为 start_date:
def new
@person = Person.new(start_date: Date.current)
end
Run Code Online (Sandbox Code Playgroud)
然后您可以直接使用表单中的值,无需任何额外的麻烦。
f.date_field :start_date
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
13343 次 |
| 最近记录: |