我有一个策略类,在该类中我有两种方法可以确定客户是否可以续订其政策。
它们看起来像这样:(在policy.rb模型中)
def is_renewable?
if has_not_been_renewed?
self.ends_on >= Date.today && self.ends_on <= Date.today + 60.days
end
end
def has_not_been_renewed?
been_renewed = self.renewed_policy.nil? || !self.renewed_policy.active? || !self.active?
end
因此,出于某种原因,这是在我的本地机器上工作,而不是在我们的暂存环境中。 (我知道,每个程序员的祸根“但它适用于我的机器!”)。
逻辑似乎很简单:首先检查以确保它尚未更新或者它们具有不同的活动策略。然后检查以确保它尚未过期,并且它将在接下来的60天内到期。
在视图中从此行调用:
<%= link_to('Renew', {:action => 'renew', :id => policy.id}, {:class => 'btn btn-success'}) if policy.is_renewable? %>
我真的没有理解为什么这在任何地方都无法奏效。我不会问,但我一直在看这个愚蠢的问题,需要一套新的眼睛来看一遍。感谢
如果有帮助,数据库(本地和登台)的格式如下:
yyyy-mm-dd
所以今天的日期是2012-09-06
。
答案 0 :(得分:2)
假设您在登台数据库中没有数据完整性问题(例如,没有设置ends_on,您认为在没有设置时应该有更新的策略),您可能需要检查系统时钟和确保它既准确又使用你期望的时区。
答案 1 :(得分:0)
数据库上的策略(并且您的暂存和开发环境中的数据库不同)?在某些情况下,您应该以更容易对数据库格式化的格式来格式化日期,例如 Time.now.to_s(:DB)