我目前有以下代码:
events.detect do |event|
#detect does the block until the statement goes false
self.event_status(event) == "no status"
end
这样做是在 event_status 方法输出“无状态”时输出事件的实例(其中事件是一串不同的模型,它们都统称为事件)。
我希望输出还包括延迟值,其中:
delay = delay + contact.event_delay(event)
event_delay 方法尚未编写,但在查看事件完成与应该完成之间的延迟时,它与 event_status 类似(可能是多余的,但我稍后会处理)。
以下是 event_status 当前的外观以供参考:
def event_status target
# check Ticket #78 for source
target_class= target.class.name
target_id = target_class.foreign_key.to_sym
assoc_name = "contact_#{target_class.tableize}"
r = send(assoc_name).send("find_by_#{target_id}", target.id)
return "no status" unless r
"sent (#{r.date_sent.to_s(:long)})"
end
我的输出概念应该是 [event,delay],例如,我可以将其作为 Array[:event] 或 Array[:delay] 访问以获取值。
****我在想也许我应该在一个方法上使用yield,但还没有把各个部分放在一起(例如,传递给方法的块应该是延迟=+,我认为是)。**
我不喜欢 .detect 方法,这是我开始使用的方法,它似乎有效,但它不允许我在它旁边运行计数。