状況: デモ期間のある Rails 3.2 アプリ。その後、ユーザーはサービスの支払いを開始する必要があります。
質問: ユーザーが支払い方法を追加しない場合、または支払いプランを選択しない場合、Web アプリの「有料」部分へのユーザー アクセスを制限する推奨される方法は何ですか?
次のようにユーザーをソートするものが必要です。
if user.admin? || user.in_demo || user.has_all_payment_data
# carry on
elsif user.should_add_payment_method
# send them to add payment method page
elsif user.should_choose_plan
# send them to add plan
else
# redirect to home page or whatever
end
私はbefore_filter
、すべてのリクエストでユーザーの支払いステータスをチェックし、それに応じてリダイレクトするアプリケーションコントローラーで始めました(ホームページ/プロファイル編集などの場所ではこれをスキップします)が、より良い方法は、急速に複雑になりすぎており、アプリケーション コントローラーにそのような複雑さをすべて持たせるのが間違っていると感じているからです。cancan などのユーザー ロール ライブラリを見てきましたが、適切なものが見つかりません。