2017-02-24 52 views
1

我已閱讀並嘗試了很多,但未找到解決方案。Rails 5中datetime列的渲染日期和時間字段

任務很簡單:

我有日期時間格式的列scheduled_at。

而不是在我的表單中有一個字段用於日期時間,我想將它分成兩個字段:一個用於日期,一個用於時間。在我的表格中,我想保留它作爲一個日期時間字段。

所以在某些時候我必須加入日期和時間datetime。由於我在我的模型中對日期時間進行了驗證,因此我無法在控制器中進行此連接。

我已經嘗試了幾件事情:

  • 創建attr_accessors(但我不能找到一種方法,加入日期和時間模型)
  • 找一些插件,通過JS的解決這個瀏覽器端
  • https://github.com/shekibobo/time_splitter,但它不會加入任何值

我想,許多應用程序有這個問題,但仍無法在互聯網上找到一個解決方案。

你能提出任何解決方案嗎?

+2

爲什麼你不能加入控制器?你可以允許日期和時間參數,然後做到這一點:將它們加入控制器 –

+0

是的,那是我之前做的。但我有一些驗證規則在這個日期時間運行。據我所知,總是最好將這些東西放入模型中... – almo

+1

是的,驗證應該在模型中,但是可以在將控件添加到對象之前在控制器中組合params(並因此觸發驗證) –

回答

0

在rails執行驗證之前,使用before validation回調將兩個字段組合成一個日期時間字段。

例子:

class YourClass < ActiveRecord::Base 

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

end 

您可以在導軌引導閱讀更多關於Active Record Callbacks

相關問題