0

ひどいタイトルで申し訳ありませんが、私がやろうとしていることを簡潔に表現するのに苦労しています.

私はアカウントを持っています。これらのアカウントは、プロジェクト、クレジット、トレードの作成などを行うことができます。これらを変更するには、管理者の承認が必要です。問題は、これらのモデルはすべて、特定の州 (米国の州など) に属するものとしてタグ付けされていることです。各状態に属し、その状態で発生するすべての変更を承認する必要がある管理者アカウントが必要です。たとえば、バージニア州でプロジェクトを作成する場合、バージニア州の管理者が来てプロジェクトを承認したり、バージニア州で発生した取引を承認したりできる機能が必要です。

私が思いつく最良の類推は、Web フォーラムで、サイト全体ではなく、特定のフォーラムのモデレーターであるユーザーがどのように存在するかということです。

管理者の承認が必要なこのモデル属するものに「タグ付け」する方法はありますか?

4

1 に答える 1

1

cancanのような宝石を見る価値があります。

そこでは、あなたが説明しているものをモデル化できる能力を定義することができます。

たとえば、自分の能力を次のように定義できます。

class Ability
  include CanCan::Ability

  def initialize(user)
    can :manage, Project, :state_id => user.state_id
  end
end

次に、ユーザーがコントローラーのプロジェクトでアクションを実行できるかどうかを確認できます。たとえば、次のようにします。

if can?(:update, @project)
  ...
else
  flash[:notice] = 'You can only manage projects in your state.'
end

Cancan は、この単純な例よりも多くのことを実行できますが、何が可能かについてのアイデアを得ることができます。

于 2013-08-29T16:50:28.613 に答える