Rails事件start_time + length = end_time

时间:2016-01-09 11:55:35

标签: ruby-on-rails ruby ruby-on-rails-4

我有一个模特

 create_table "events", force: :cascade do |t|
    t.string   "title"
    t.datetime "start"
    t.datetime "end"

如何添加"持续时间值",以便"结束" ="开始+持续时间"?

2 个答案:

答案 0 :(得分:1)

您不需要持续时间,只要您有初始日期和最终日期即可轻松计算持续时间。

您可以在模型中使用持续时间

memcmp

此外,您不应将def duration end_time - start_time end 用作字段名称,因为它是Ruby中的保留关键字,在某些情况下可能与解析器冲突。例如,您无法写

end

相反,如果要创建数据库列,则只需创建一个整数def duration end - start end 属性,并且可以使用活动记录回调来计算保存记录时的持续时间。

答案 1 :(得分:0)

确定。我将start更改为start_time;

从db中删除end;

在db;

中创建duration:integer 模特中的

def end_time start_time + duration*60 end

这样,我可以输入start_timeduration,=>见end_time