ポリシークラスがあり、そのクラスには、顧客がポリシーを更新できるかどうかを判断する2つのメソッドがあります。
それらは次のようになります:(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
。