Ruby on Railsのbefore_filter
メソッドを使用して、複数のことの1つが正しいことを確認することは可能ですか?具体的には、ユーザーと管理者を定義したDeviseを使用しており、特定のコントローラーにアクセスしているユーザーがどちらか一方であることを確認したいと思います。私はドキュメンテーションとSOで答えを探しましたが、運がありませんでした。
おかげで、ここに私のバージョンがあります(それが役立つ場合):
- Ruby 1.9.3
- Rails 3.2.6
- 考案2.2.3
Ruby on Railsのbefore_filter
メソッドを使用して、複数のことの1つが正しいことを確認することは可能ですか?具体的には、ユーザーと管理者を定義したDeviseを使用しており、特定のコントローラーにアクセスしているユーザーがどちらか一方であることを確認したいと思います。私はドキュメンテーションとSOで答えを探しましたが、運がありませんでした。
おかげで、ここに私のバージョンがあります(それが役立つ場合):
可能です。これよりも単純なことはないので、実際にこれを答えとして配置することを躊躇します。admin?
ユーザーの役割に応じてtrueまたはfalseを返すメソッドがあると想定しています。
before_filter :check_if_admin
protected
def check_if_admin
if signed_in?
raise 'Only admins allowed!' unless current_user.admin?
else
# or you can use the authenticate_user! devise provides to only allow signed_in users
raise 'Please sign in!'
end
end