在Rails 5

时间:2017-02-24 15:43:47

标签: ruby-on-rails datetime simple-form ruby-on-rails-5

我已阅读并尝试过很多但未找到解决方案。

任务很简单:

我有一个datetime格式的schedule_at列。

我没有在日期时间的表单中使用一个字段,而是将其拆分为两个字段:一个用于日期,一个用于时间。在我的表中,我希望将其保留为一个日期时间字段。

所以在某些时候我必须加入日期和时间到日期时间。由于我在模型中验证了datetime,因此无法在控制器中加入。

我尝试了一些事情:

  • 创建attr_accessors(但我找不到在模型中加入日期和时间的方法)
  • 通过浏览器端的JS找到一些插件来解决这个问题
  • https://github.com/shekibobo/time_splitter,但不会加入值

我想很多应用都有这个问题,但仍无法在互联网上找到解决方案。

你能建议任何解决方案吗?

1 个答案:

答案 0 :(得分:1)

在rails执行验证之前,使用before validation回调将两个字段合并为一个日期时间字段。

示例:

class YourClass < ActiveRecord::Base

  before_validation(on: :create) do
    self.your_field = do_stuff
  end

end

您可以在导轨指南中的Active Record Callbacks上阅读更多内容。