これがコードです。基本的に、ユーザーは請求日(毎月1日または毎月15日)を選択します。「start_date
契約」が始まるexpire_date
とき、それが期限切れになるときです。
したがって、今日が3日で、15日に請求を希望する場合は、その月の15日に移動します。ただし、今日が3日で、最初に請求を希望する場合は、翌月の1日を取得します...など。
if params[:billing_day] == 1 && start_date.day > 1
expire_date = start_date.at_beginning_of_month.next_month
elsif params[:billing_day] == 15 && start_date.day < 15
expire_date = start_date.change(:day => 15)
elsif params[:billing_day] == 15 && start_date.day > 15
expire_date = start_date.at_beginning_of_month.next_month.change(:day => 15)
else
expire_date = start_date.change(:day => params[:billing_day])
end
それはただクレイジーに思えます、確かにそれはRailsで単純化することができます。ありがとう!