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

问题描述 投票:0回答:1

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

所以对于第一种情况我有属性:date,DateTime

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

ruby properties datamapper
1个回答
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中的工作方式基本相同。

© www.soinside.com 2019 - 2024. All rights reserved.