如何在Ruby Datamapper中设置一个属性,该属性是同一对象的另一个属性的函数?

时间:2019-03-06 08:14:13

标签: ruby properties datamapper

我想为ruby datamapper模型添加两个新属性,一个是时间戳属性的日期转换,另一个是通过唯一键连接的另一个对象的值。

所以对于第一种情况     属性:日期,日期时间

,我想添加另一个     属性:date_date,日期 默认情况下将等于date.to_date

1 个答案:

答案 0 :(得分:0)

您应该看到以下文档:https://datamapper.org/docs/properties.html

特别是有关“可用类型”和“设置默认值”的部分。

您可以这样做:

property :date_date, Date, default: -> do |obj, prop|
  obj.date.to_date
end

您也可以通过回调(https://datamapper.org/docs/callbacks.html)进行设置,例如:

property :date_date, Date

before_save :set_date_date

def set_date_date
  self.date_date = date.to_date
end

请注意,它在Rails的ActiveRecord中的工作方式也基本相同。