0

在我的 Rails 应用程序中,我有一个用户模型、部门模型、组模型和一个注册模型。用户模型有基本的用户信息,

用户模型:

id , name
has_and_belongs_to_many :departments , :groups

部门型号:

id,name
has_and_belongs_to_many :users
has_many :registers

团体模型:

id,name
has_and_belongs_to_many :users
has_many :registers

注册型号:

date ,department_id , group_id , one , two , three
belongs_to :department ,:group

注册模式中的“一”、“二”、“三”是时间段,比如:9-12、12-3、3-6。每天每个用户都要标记考勤,这样他们的考勤就必须对时间进行标记寄存器表中的插槽。如何使用时隙根据当前时间标记出勤率。

提前致谢。

4

3 回答 3

1

试试这个

current_time = Time.now
if (9..12).include?(current_time.hour)
# 9-12
elsif (12..15).include?(current_time.hour)
# 12-3
elsif (15..18).include?(current_time.hour)
# 3-6
end
于 2012-12-20T05:29:08.263 回答
1

你可能需要做

current_time = Time.now
if (9..11).include?(current_time.hour)
# Do A
elsif (12..14).include?(current_time.hour)
# Do B
elsif (15..18).include?(current_time.hour)
# Do C
end

(或者)

current_time = Time.now
if (9...12).include?(current_time.hour)
# Do A
elsif (12...15).include?(current_time.hour)
# Do B
elsif (15...18).include?(current_time.hour)
# Do C
end
# I think of the extra "." as 'eating' the last value so you don't have it.

处理重叠

于 2012-12-20T05:53:42.370 回答
0

可能会考虑创建一个位图。一个 32 位整数是轻量级的,给你 0-24,每小时一个。编写一些可以比较、设置、...小时范围的函数。

于 2012-12-20T05:20:38.063 回答