Gar*_*ows 2 ruby ruby-on-rails
我有两个模型,一个是Employee和一个WorkingPattern.Employee的一个实例belongs_to一个工作模式.
工作模式看起来像这样
:id => :integer,
:name => :string,
:mon => :boolean,
:tue => :boolean,
:wed => :boolean,
:thu => :boolean,
:fri => :boolean,
:sat => :boolean,
:sun => :boolean
Run Code Online (Sandbox Code Playgroud)
我需要知道员工今天是否应该上班.因此,如果今天是星期二,并且该员工的工作模式记录报告:tue = true然后返回true,等等.我没有选择重命名WorkingPattern模型上的字段以匹配日期名称.
我知道
Time.now.strftime("%A")
Run Code Online (Sandbox Code Playgroud)
将返回当天的名称.然后我发现我可以通过这样做获得字符串的前3个字符
Time.now.strftime("%A")[0,3]
Run Code Online (Sandbox Code Playgroud)
所以现在我把"Tue"作为字符串返回.添加一个小写
Time.now.strftime("%A")[0,3].downcase
Run Code Online (Sandbox Code Playgroud)
现在我有了"tue",它匹配了WorkingPattern上的符号:tue.
现在我需要一种在正确的日期检查字符串的方法,理想情况是这并不意味着每个员工对数据库进行7次查询!
任何人都可以建议吗?
您可以使用%a缩写的工作日名称.并用于send动态调用方法
employee.working_pattern.send(Time.now.strftime("%a").downcase)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
53 次 |
| 最近记录: |