0

datetime fieldデータベースで1つに処理できるように、2つの別々のフィールドを作成する方法は?

以下のコード例に値のような値を置くjquery datetime pickerを使用しています。

パラメータには、時間のフィールドのみが含まれますが、日付のフィールドは無視されます。

フィールドに時刻をコメントすると、日付が送信されて保存されますが、パラメーターは「2013-23-02」のように見え、マルチパラメーターのように転送されません。

#model
field :start_at, type: DateTime

#view
= f.text_field :start_at, :value => "2013-02-23"
= f.text_field :start_at, :value => "20:20:20"
4

1 に答える 1

2

仮想属性とコールバックを使用できます(これはテストされていませんが、アイデアを得る必要があります)

# model
attr_writer :start_at_time, :start_at_date

before_validation :build_start_at

def start_at_date
  @start_at_date ||= start_at.to_date
end

def start_at_time
  @start_at_time ||= start_at.strftime("%H:%M")
end

def build_start_at
  self.start_at = Time.parse "#{start_at_date} #{start_at_time}"
end    

# view
= f.text_field :start_at_date
= f.text_field :start_at_time
于 2013-02-12T12:55:18.440 に答える