メソッドを介してSubscription
forを作成します。User
.create_subscription(plan_title)
このメソッドは、メソッドを介して (オーバーサブスクライブされたプランやアーカイブされたサブスクリプションではなく) サブスクライブできることを確認します.plan_subscribable?(plan)
。
このメソッドはtrue
またはfalse
を返しますが、ユーザーに渡すことができるエラー メッセージも返すようにしたいと考えていますfalse
。
これらの検証エラーを実装する方法と場所は?
class User
def plan_subscribable?(plan)
users_subscribed = Subscription.where(plan_id: plan.id).size
return false unless users_subscribed <= plan.quantity
return false unless plan.archived == false
return true
end
def create_subscription(plan_title)
plan = Plan.where(title: plan_title).first
if plan_subscribable?(plan)
Subscription.create(...)
end
end
end