将数据组合到1个模型属性

Tar*_*her 4 ruby ruby-on-rails ruby-on-rails-3

我有一个日历系统,用户在单独的text_field中输入事件的日期和时间.我将日期和时间存储在事件模型中的一个属性(开始)中我很难确定如何组合日期和时间输入并将其组合到begin属性中.

我最好通过虚拟属性(:date:time)来做这件事,这样我就可以轻松地将我的表单映射到那些虚拟属性,而无需在控制器中执行某些操作.

非常感谢

Kri*_*ris 10

您可以为日期和时间属性创建自己的访问器方法,如下所示:

def date
   datetime.to_date
end

def date=(d)
  original = datetime
  self.datetime = DateTime.new(d.year, d.month, d.day,
    original.hour, original.min, original.sec)
end

def time
   datetime.to_time
end

def time=(t)
  original = datetime
  self.datetime = DateTime.new(original.year, original.month, original.day,
    t.hour, t.min, t.sec)
end
Run Code Online (Sandbox Code Playgroud)