2012-02-07 56 views
2

我正在试图在名为'timeclock'的模型上记录'time_in'和'time_out'记录。这是我想要做的,但无法去工作!Ruby on Rails Time In/Time Out Records

  1. 检查的最后一个时钟进度条目,以确定它既有“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 
    
  2. 如果有已经时钟进度的记录是不完整的(有一个“time_in”记录,但不是“TIME_OUT”记录,呈现形式或更新的最后一条记录。

我已经能够获得时间记录进入d b,但从来没有在同一个数据记录上,像这样:http://cl.ly/E0Rg(image)

这有道理吗?如果你需要一些澄清的问题,请不要犹豫,问!谢谢!

回答

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你控制器无论是在一个新的记录或要更新

+0

谢谢你这么多的反应的记录。这工作完美。如果我有15代表我会投票你的答案:(对不起! – briankulp 2012-02-08 18:17:39