0

これは、以前ここで尋ねた質問に似ていますが、実際の混乱がどこにあるのかよくわかりませんでした。カスタム レベルのアクセス許可を定義するために CanCan を見てきましたが、通常のユーザーが必要なものを作成できるようにする方法が不明ですが、実際のレコードが作成される前に、管理者が入って承認する必要があります。

たとえば、ユーザーはプロジェクトを作成できますが、これらのプロジェクトは特定の状態に属している必要があります。管理者はそれぞれ特定の州に属しており、その州で作成された新しいプロジェクトを承認する必要があります。CanCanでこれを行う方法はありますか、またはこれを行う別の方法はありますか?

4

2 に答える 2

0

そのアプリケーションロジック。

プロジェクトが承認されているかどうかを示すテーブルまたはフラグ フィールドが必要です。通常のユーザーには、承認されたプロジェクトのみが表示されます

def index
   @projects = Project.where(approved: true)
end

(または default_scope を使用)

また、管理者は自分の州のプロジェクトを承認するためのリストを持っています

def approve_list
   @projects = Project.where("approved = ? AND state_id= ?", false, params[:state_id])
end
于 2013-09-03T14:43:52.957 に答える