現在、Rails と twilio を学習するためのコール トラッキング アプリを作成しています。アプリには 2 つの関連モデルがあります。Plans モデルには、多くのユーザーがいます。計画表には、値 max_minutes もあります。
特定のユーザーが max_minutes を超えるとサブアカウントが無効になり、ビューでアップグレードするように警告できるようにしたいです。
これを行うために、 User クラスで作成したパラメーターを次に示します
def at_max_minutes?
time_to_bill=0
start_time = Time.now - ( 30 * 24 * 60 * 60) #30 days
@subaccount = Twilio::REST::Client.new(@user.twilio_account_sid, @user.twilio_auth_token)
@subaccount.calls.list({:page => 0, :page_size => 1000, :start_time => ">#{start_time.strftime("%Y-%m-%d")}"}).each do |call|
time_to_bill += (call.duration.to_f/60).ceil
end
time_to_bill >= self.plan.max_minutes
end
これにより、ビューで if/else ステートメントを実行して、アップグレードを促すことができます。ただし、if/else ステートメントも作成したいと思います。ユーザーの twilio サブアカウントが無効になっている場合、それ以外の場合は有効になっています。
レールのどこにそれを置くのかわかりません。
それはこのように見えるでしょう
@client = Twilio::REST::Client.new(@user.twilio_account_sid, @user.twilio_auth_token)
@account = @client.account
if at_max_minutes?
@account = @account.create({:status => 'suspended'})
else
@account = @account.create({:status => 'active'})
end
しかし、このコードをどこに配置すればよいかわかりません。そのため、常にアクティブになっています。
機能を動作させるために、このコードをどのように実装しますか?