我正在尝试在名为'timeclock'的模型上录制'time_in'和'time_out'记录。这是我想要做的但是无法开始工作!
检查最后一个时钟输入并查看是否同时填写了'time_in'和'time_out'记录。如果是,则创建一个新记录(如下所示):
form_for([@employee, @employee.timeclocks.build]) do |f| f.hidden_field :time_in, :value => @current_time f.submit "Clock In" end
如果已经有一个不完整的时钟记录(有'time_in'记录但没有'time_out'记录,则渲染表格或更新最后一条记录。
我已经能够将时间记录存入数据库,但从未在相同的数据记录中获取,如下所示:http://cl.ly/E0Rg(图像)
这有意义吗?如果您需要一些澄清问题,请不要犹豫!谢谢!
答案 0 :(得分:6)
使用您提供的代码,您始终创建新记录,因为@ employee.timeclocks.build用于创建记录。
如果你想要更新记录,你应首先获取它,然后在form_for方法中传递此记录
获取记录使用@ employee.timeclocks.find fappropriate where子句获取要更新的记录
form_for([@employee, @timeclock]) do |f|
f.hidden_field :time_in, :value => @current_time
f.submit "Clock In"
end
您可以在控制器中设置@timeclock,使用新记录或使用要更新的记录