0

我为我的应用程序生成了一个脚手架。数据库有一个日期和时间字段,我想设置提交表单的当前日期和时间。

我在 _form.html.erb 创建

<div class="field">
    <%= f.label :t_date %><br />
    <%= f.date_select :t_date %>
  </div>

   <div class="field">
    <%= f.label :t_time %><br />
    <%= f.time_select :t_time %>
  </div>

但我不希望用户设置它们,但必须作为表单参数传递。我为他们准备了隐藏字段,但即使我将它们设置为隐藏,你也可以发送一个错误的表单 trought json 或一个 POST 请求,对吗?传递当前日期和时间,将它们保存到数据库并在没有用户通知的情况下显示它们的正确方法是什么?

4

2 回答 2

0

如果表单用于创建或更新模型,您只需使用 Activerecord 提供的时间戳功能。

从文档:

如果表具有名为 created_at/created_on 或 updated_at/updated_on 的字段,Active Record 会自动为创建和更新操作添加时间戳。

于 2012-09-06T20:24:16.007 回答
0

除非您需要知道表单加载而不是提交的确切时间,否则我建议您在收到表单提交后在控制器中添加当前日期和时间。很好很简单,您可以回避用户提交“恶意”日期的可能性。

于 2012-09-06T20:21:39.217 回答