2010-04-30 33 views
0

我在軌道窗體上有兩個字段'from_date'和'to_date'。當用戶輸入日期時,我必須顯示工作日的數量,即排除(sat,sun和數據庫表中其他官方節假日的列表)。計算軌道表格上的工作天數

這是應該在客戶端完成的東西javascript 或者這是應該通過向rails發出ajax請求來完成的事情。

你能告訴我怎麼做到這一點。

非常感謝。

回答

1

取決於該功能使用的頻率,我會選擇做這兩個,創建一個.js文件(或動態生成,只是確保軌道緩存它),並在本地嘗試使用JavaScript即時滿足。然後確保在服務器端正確保存。

在客戶端和服務器端都做這件事的好處是,當這個人可以直接在網站上看到它而沒有做出請求時,您可以節省一些麻煩。但是,如果他們禁用JavaScript,它仍然可以工作。如果它是重要的,你永遠不要相信你從網絡表單獲得的東西。 :)

+0

我需要在提交表單之前向用戶顯示工作天數。如果我使用客戶端js,我如何從數據庫中獲取假期列表。 你是否建議使用observe_field原型助手進行ajax請求。 在向用戶顯示之前,我是否需要在ruby或js中進行計算?一些示例代碼將會很有幫助。 – user290870 2010-04-30 19:23:26

+0

我建議你在無效的日期控制器索引方法返回所有無效日期爲JSON或類似。 在頁面/控制器上,您需要計算工作日,確保包含該JSON文件並將其綁定到數組。然後遍歷您範圍內的所有日期,並將它們與該陣列以及週末的日期進行匹配。 優點是你可以緩存無效的日期,但仍然有他們在數據庫中,很容易改變。但是,只要啓用了JavaScript,每次有人需要計算日期時,您也不必查詢數據庫/導軌。 :) – gaqzi 2010-04-30 20:28:21

+0

謝謝。仍然不清楚幾點。 1.我何時調用'invalid_dates'控制器的'index'操作來返回index.json視圖。我是否在輸入日期字段的'模糊'事件或document.onload 上執行此操作2.'循環遍歷範圍中的日期...'是您所指的JavaScript代碼或Ruby代碼? 謝謝。 – user290870 2010-04-30 21:28:53