私はプログラミングの初心者で、複数のプランを利用できるフリーミアムスタイルのアプリを作ろうとしています。
私はカンカンジェムを使用して、開催しているプラン(無料、プレミアム、プレミアム+)に応じて会場に役割を割り当てています。
割り当てられているプランに応じてビューに表示される特定のオプションを制限する方法を知っていますが、割り当てられているプランに応じて会場に追加されるレコードの数を制限するにはどうすればよいですか?
例えば
- すべての会場で写真を撮りたいのですが、無料の会場は3つに制限する必要があります。
- また、すべての会場に検索可能なタグを付けてほしいのですが、どのプランのプランに応じてタグの数を変更できるようにします。
現在、プランは会場モデルで次のように指定されています。
PLANS = %w[free premium premium+]
編集
Alex Peattieからの回答のおかげで、私は今正しい方向に進んでいると思います。
行を次のように変更しvalidate_on_create :photo_count_within_limit
ました:
validate :venuephoto_count_within_limit, :on => :create
しかし、VenuesController#updateでArgumentErrorが発生しています:Fixnumとnilの比較に失敗しましたエラー。
別の編集
これですべてが順調になりました。次の変更を加えただけです。
def photo_limit
{:free => 3, :premium => 10}[plan.to_sym]
end
と
validate :venuephoto_count_within_limit, :on => :create
助けてくれてありがとう!