管理者、マネージャー、エンジニアの 3 つのユーザー グループが必要です。管理者は、すべてのオブジェクトを表示したり、ユーザーが属するグループを変更したりできます。マネージャは、自分のものとエンジニアのものを見ることができます。エンジニアは自分のものしか見ることができません。問題は、すべてのロジックをどこに配置するかです。つまり、ビュー、コントローラー、またはモデルです。セッション ヘルパー「current_user_right_on(stuff)」を作成し、ビューで権限を確認します。
if current_user_right_on(stuff) == view
show_stuff
if current_user_right_on(stuff) == change
show_edit_controls
end
end
そのようなことを行う一般的な方法は何ですか?経験則とは何ですか?
更新だから、今私はコントローラーにあります
def index
if logged_in?
if current_user.admin?
@stuff = Stuff.all
else
@stuff = Stuff.stuff_user_can_see(current_user)
end
else
@stuff = Stuff.where( <anyone can see> )
end
end
モデルには、データベースから適切なレコードを選択するメソッド「stuff_user_can_see(user)」があります。
ここで何を改善すればよいですか?