我有一个 Rails 4 表单,用户在其中输入一个表示日期时间的字符串:
<%= f.text_field :time_frame, class: "calender_pop" %><br />
在我的代码中没有将字符串转换为日期时间的地方。我尝试在字段中输入非日期时间输入(即整数、字符串等),但日期时间不接受它们。如果我尝试输入非日期时间值,日期时间变为零。这很好,但我很困惑,因为我从来没有写过任何这样的验证。我以前使用过 postgres 并且能够将整数放入字符串列中,所以我不知道 postgres 或 rails 有任何自动验证。
- postgres 或 rails 会自动验证日期时间吗?
- time_frame 列中填充的是字符串还是日期时间?
我也在使用查询日期时间选择器插件,但我认为这与数据类型没有任何关系。
更新:
我跑了:
Task.last.time_frame.is_a? Time
它返回了 true。
所以问题 3。发生了什么事?它如何以及何时转换为时间?
更新:
我刚刚读到 postgres 实际上没有日期时间类型。它可能与更改数据类型的 orm 有关吗?
最佳答案
老兄,它完全不是 rails。它是 jQuery 日期时间选择器。
检查这些链接,
http://jquery.10927.n7.nabble.com/jQuery-datepicker-allow-non-date-text-input-td131163.html
https://forum.jquery.com/topic/datepicker-any-way-to-disable-the-textbox-28-5-2010
jQuery Datepicker with text input that doesn't allow user input
关于ruby-on-rails - rails - postgres 或 rails 是否自动验证 datetime 列只能有 datetime 对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20387746/