我尝试了以下方法:
class DataEntry
include DataMapper::Resource
property :id, Serial, :key => true
property :some_data, Text, :length => 1000000
property :created_at, DateTime
after :save do |entry|
if entry.created_at.strftime('%T') == "00:00:00"
@new_datetime = ((entry.created_at.to_time+1)-3600).to_datetime
entry.update!(:created_at => @new_datetime)
end
return true
end
end
如果它是 00:00:00(小时:分钟:秒),这应该将条目保存的时间更改为 00:00:01。我知道我的代码很脏(我正在学习 ruby、datamapper 等,我有点菜鸟;)),但更糟糕的是:它对模型没有任何影响。它就像我的钩子不存在一样保存。我究竟做错了什么?
(可能也很重要:我将它与 sinatra 一起使用,所以我无法访问诸如 n.hours 等的 Rails 助手!)
提前致谢!;)