Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 日期和时间隐藏表单字段(Rails3)_Ruby On Rails - Fatal编程技术网

Ruby on rails 日期和时间隐藏表单字段(Rails3)

Ruby on rails 日期和时间隐藏表单字段(Rails3),ruby-on-rails,Ruby On Rails,我为我的申请生成了一个脚手架。DB有一个日期和时间字段,我想设置表单提交的当前日期和时间 我是在_form.html.erb创建的 <div class="field"> <%= f.label :t_date %><br /> <%= f.date_select :t_date %> </div> <div class="field"> <%= f.label :t_time %&

我为我的申请生成了一个脚手架。DB有一个日期和时间字段,我想设置表单提交的当前日期和时间

我是在_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请求,对吗?
传递当前日期和时间、将其保存到db并在不通知用户的情况下显示它们的正确方法是什么?

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

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

从文档中:

如果需要,活动记录会自动为创建和更新操作添加时间戳 表中有名为created_at/created_on或的字段 更新于/更新于


如何从控制器访问t_日期和t_时间变量@object.t_time=Date.today?@JuanCruzViotti-我会在你调用
object.create
之前将它们放入params散列中,这样你只需保存到数据库一次:
params[:my_whatever][:t_time]=Date.today
。但是如果你只是跟踪你的模型是什么时候创建/更新的,你应该用Daniel的答案来代替——它更干净!