我正在尝试找到联系人标记为“已完成”的最近时间。联系人属于用户。我在我的用户模型中有这个方法,但我知道它可能会得到改进。
def last_contact_done_days
date_array = self.contacts.find(:all, :select => "date_done").to_a
most_recent = date_array.max
last_done_days_ago = Date.today - most_recent[:date_done]
return last_done_days_ago
end
谢谢!
答案 0 :(得分:3)
您可以使用此方法:
def last_contact_done_days # => date_done of the most recent contact if it exists
contact = self.contacts.order('date_done DESC').first
return contact.date_done if contact
nil
end
或(较短版本与try方法):
def last_contact_done_days
self.contacts.order('date_done DESC').first.try(:date_done)
end
答案 1 :(得分:1)
您可以这样重新定义:
def last_contact_done_days
Date.today - contacts.order('date_done DESC').first.date_done
end