如何在 Rails 中为 datetime_field_tag 设置默认值

ogi*_*inc 1 html ruby-on-rails view ruby-on-rails-5

我想datetime_field_tag在我看来有一个默认值:

=form_tag form_path, method: :get do
  =label_tag :sign_up_at, 'Sign up before:'
  =date_field_tag :sign_up_at, (params[:sign_up_at] || 
                               Time.zone.today.strftime("%Y-%m-%d"))

  =label_tag :last_seen_at, 'Last seen after:'
  =datetime_field_tag :last_seen_at, (params[:last_seen_at] || 
                                     Time.zone.now.strftime("%d-%m-%YT%H:%M"))

  =submit_tag 'Filter', class: 'btn-info'
Run Code Online (Sandbox Code Playgroud)

这导致value在 HTML中有一个标签:

<input type="datetime-local" name="last_seen_at" id="last_seen_at" value="22-05-2017T16:34">
Run Code Online (Sandbox Code Playgroud)

缺失默认值

我的猜测是,我在解析Time. 请问有人可以帮忙吗?谢谢!

根据@deephak 的回答更新。

Ale*_*hao 5

只是为了补充这里的另一个答案: datetime_field_tag帮助程序对提供给它的日期时间的格式很敏感。例如,如果日、月和年的顺序错误,则该值将不会显示在表单输入中(如果您打开了开发人员控制台,则会显示一条警告消息)。

这可能取决于您的语言环境,但 OP 的"%d-%m-%YT%H:%M"格式字符串的年份和日期相反。"%Y-%m-%dT%H:%M"似乎在我的试验中修复了它。