1

認証されない限り、レールアプリの一部のコントローラーでアクションが実行されないようにするには、使用できます

before_filter :validate_user, :only => [:create, :update]

これにより、許可されたユーザーが試行しない限り、作成と更新が実行されなくなります。アクション create および update が Rails エンジン内のコントローラーにある場合、これは機能しません。

Railsエンジン内にあるコントローラーでのアクションの実行を条件付きでブロックするにはどうすればよいですか?

4

1 に答える 1

0

問題のvalidate_userメソッドが を返したfalse場合、フィルター チェーンは停止され、アクションは実行されません。

典型的なパターンは次のようになります。

def validate_user
  unless (...valid_conditions...)
     flash[:error] = "You're not logged in."
     redirect_to(login_path)
     return false
   end
end

フィルター チェーンを停止する前に、やりたいことは何でもできますが、理想的には、自分redirectまたはrender何かを先に実行することをお勧めします。

于 2012-06-14T06:14:33.143 に答える