Railsサイトでユーザーが持つことができる5つの役割があります
- @roles.each do |role|
%label.radio
= radio_button_tag 'user[role_ids][]', role.id, @user.has_role?(role.name)
= role.name
そして、私がやりたいことは、それらを無効にするか、完全に非表示にしたい current_user ロールに基づいています
私はこのように実装することを考えていましたが、あまりきれいに見えません....任意のアイデア
これを追加したかった
:disabled => disable_role?(current_user, role.name)
と
def disable_role?(current_user, role_name)
case
when role_name == 'superadmin' and current_user.superadmin?
return false
when role_name == 'admin' and (current_user.superadmin? || current_user.admin?)
return false
when role_name == 'standard' and (current_user.superadmin? || current_user.admin?)
return false
else
return true
end
end
他にも条件がありますが、私のアプローチの例をお見せしたいと思います。