2012-02-07 61 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