3

ユーザーが3つのプランにサブスクライブできるファイルを保存するレールアプリがあります。

  • プラン 1: 30 日間、最大50 ファイル無料トライアル
  • プラン 2: 最大250 ファイル
  • プラン 3: 最大500 ファイル

次の場合、ユーザープランを自動的にアップグレード/ダウングレードするにはどうすればよいですか?

  • 30 日間の試用期間が終了するか、ユーザーが 50 を超えるファイルをアップロードする
  • ファイル制限を超えて、別の括弧に入ります
  • または、ファイルが削除され、ユーザーのレベルが下がります

これらの変更についてユーザー アカウントを「監視」するように Rails アプリを設定するにはどうすればよいですか?

Files コントローラーの作成および削除アクションにロジックを貼り付けるよりも良い方法はありますか? では、30 日間の試用ロジックはどうでしょうか。ありがとうございました!

注: 切り替えを監視してトリガーするロジックを探すだけで、サブスクリプションの実際の切り替えを問題なく処理できます。

4

2 に答える 2

2

ユーザーのプランで関連付けコールバックをセットアップします。Plan に対して has_many の関係があると仮定すると、User.rb で次のようなものを持つことができます。

has_many :plans, :through => :user_plans,
  :after_add => :check_plan_eligibility,
  :after_remove => :check_plan_eligibility

その後

protected
def check_plan_eligibility(obj)
  # Do checks here based on your rules, and update the user's plan ID accordingly
end
于 2013-02-02T22:07:31.027 に答える
0

オブザーバー ( http://api.rubyonrails.org/classes/ActiveRecord/Observer.html )

また

ActiveRecord::Callbacks ( http://api.rubyonrails.org/classes/ActiveRecord/Callbacks.html )

ユーザーのログイン時に 30 日間の試用版を確認できます。残りは、ユーザーが更新するときにコールバックを使用して行うことができます。

于 2013-02-02T21:52:56.097 に答える