sql – 如何在Rails中创建“即将到来的生日”模块?
发布时间:2021-04-07 16:28:10 所属栏目:编程 来源:网络整理
导读:我有一个表“users”,其列为“date_of_birth”(日期,月份,年份为DATE名目). 在前端,我必要列出5个即将到来的生日. 花了很长时刻试图弄清晰这个逻辑……还赏识了谷歌里全部也许没有命运的文章. 有任何提议如安在RoR中做到这一点? 感谢! 办理要领 有几个谜底
我有一个表“users”,其列为“date_of_birth”(日期,月份,年份为DATE名目).
花了很长时刻试图弄清晰这个逻辑……还赏识了谷歌里全部也许没有命运的文章. 有任何提议如安在RoR中做到这一点? 感谢! 办理要领有几个谜底提议计较/存储一年中的日期并对其举办分类,可是当你靠连年底而且必要在来岁年头思量有生日的人时,仅此一项并不会有多大甜头.我会找一个办理方案来计较每小我私人下一个生日的完全日期(年,月,日),然后对此举办排序.您可以在Ruby代码中执行此操纵,也可以行使数据库中的存储进程执行此操纵.后者会更快,但会使您的应用措施更难以在往后迁徙到差异的数据库平台. 仅天天更新一次即将到来的生日列表是公道的,这意味着您可以行使某种情势的缓存.因此,所需的查询/代码的速率不是题目,只要您缓存功效,这样的工作应该可以正常事变: class User def next_birthday year = Date.today.year mmdd = date_of_birth.strftime('%m%d') year += 1 if mmdd < Date.today.strftime('%m%d') mmdd = '0301' if mmdd == '0229' && !Date.parse("#{year}0101").leap? return Date.parse("#{year}#{mmdd}") end end users = User.find(:all,:select => 'id,date_of_birth').sort_by(&:next_birthday).first(5) 编辑:修复了与闰年一路正常事变. (编辑:湖南网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |