2

サブスクリプション属性に制限が設定されたアプリケーションがあります。i/eaユーザーはサブスクリプションAに5つのプロジェクトを持つことができますが、サブスクリプションBには10のプロジェクトを持つことができます。

現在、作成アクションにリンクするときに現在の使用状況をチェックしていますが、制限を超えている場合は、新しいプロジェクトを作成するためのリンクを表示しません。ビュー(新しいプロジェクトの場合)で、(ヘルパーで)チェックを再度実行して、新しいプロジェクトを作成できるかどうかを確認します。作成できない場合は、そのことを示すメッセージと小さなアップグレードリンクを表示します。

これは、サブスクリプション属性の制限をバイパスしてユーザーを停止する安全な方法ですか?

直接PUTリクエストなどはどうですか?

4

2 に答える 2

1

また、新しいプロジェクトが作成されたときに、ユーザーのサブスクリプションが新しいプロジェクトの開始を許可していることを検証することもできます。これにより、new_project_pathに直接投稿した場合でも、エラーが発生することが保証されます。

class Project

  belongs_to :user

  validate_on_create :subscription_allows_new_project

  def subscription_allows_new_project
    unless self.user.subscription.max_projects > self.user.projects.count
      errors.add_to_base("Project limit reached, please upgrade today!")
    end
  end

end
于 2010-06-19T16:52:02.823 に答える
0

putリクエストに本当に注意している場合は、すべてのページで呼び出すヘルパーメソッドを作成するだけで済みます。

<% if has_user_hit_project_limits %>
Upgrade Now!
<% else %>
Add project
<% end %>

def has_user_hit_project_limits
    if #logic
        true
    else
        false
    end
end
于 2010-06-17T17:55:55.830 に答える