如何在 ruby 数据映射器中设置一个 属性 作为同一对象的另一个 属性 的函数?
How to set a property in ruby datamapper that is a function of another property of the same object?
我想向 ruby 数据映射器模型添加两个新属性,一个是时间戳 属性 的日期转换,另一个是通过唯一键连接的另一个对象的值.
所以对于第一种情况我有
属性:日期,日期时间
我想再添加一个
属性 :date_date, 日期
默认情况下等于 date.to_date
您应该查看文档:https://datamapper.org/docs/properties.html
特别是关于 "Available Types" 和 "Setting default values" 的部分。
你可以这样做:
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 中的工作方式基本相同。
我想向 ruby 数据映射器模型添加两个新属性,一个是时间戳 属性 的日期转换,另一个是通过唯一键连接的另一个对象的值.
所以对于第一种情况我有 属性:日期,日期时间
我想再添加一个 属性 :date_date, 日期 默认情况下等于 date.to_date
您应该查看文档:https://datamapper.org/docs/properties.html
特别是关于 "Available Types" 和 "Setting default values" 的部分。
你可以这样做:
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 中的工作方式基本相同。