ruby – Rails根据日期输入自动填充表单字段
我有一个Rails 3.2.18应用程序,在我的表单中我有一个年龄(int)和出生日期(datetime)的字段.我将使用一个简单的jQuery日期选择器来选择DOB.
这就是我想要发生的事情. 第一个字段是DOB(出生日期).我想选择它,并且一旦它被选中,我想计算年龄并根据该选择自动填充年龄字段. 我想我可以通过在模型上创建一个计算年龄的方法来实现它,但我不确定如何在年龄字段中填充它.也许是一些Javascript或什么? 任何帮助将不胜感激. 下面是我为另一个应用程序编写的方法,该方法根据DOB计算年龄并可以在视图中使用: def age(dob) now = Time.zone.now.to_date now.year - patient_dob.year - ((now.month > patient_dob.month || (now.month == patient_dob.month && now.day >= patient_dob.day)) ? 0 : 1) end 解决方法
您建议的内容不可能在Ruby中完成.你可以使用JavaScript.
如果没有首先前往服务器,计算年龄,然后将结果呈现给客户端,则无法根据用户输入计算年龄.该模型不知道用户输入的日期;这是,除非你提交表格,当然. 可以通过Ajax提交表单.例如,某些网站允许您填写邮政编码,然后他们会为您预先填写地址.真正发生的是,在幕后,浏览器向返回地址的服务器发送ajax请求. 在您的情况下,您不必这样做,因为在JavaScript中计算年龄非常容易.在客户端上执行此操作也更快,因为它可以节省您到服务器的往返. 看一下 4/calculate-age-in-javascript”>this answer,它将向您展示如何根据输入日期计算人员年龄. 如果您使用Rails,您可能会使用jQuery.在这种情况下,您可以执行以下操作:
然后,在服务器上,您可能希望在将数据保存到数据库之前重新计算年龄.这是因为没有什么能阻止用户直接提交虚假年龄.通过填写,或通过改变DOM.
See this answer关于如何使用Ruby计算年龄,看起来与您在问题中的代码相同. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |