0

Deviseがユーザーをログインページにリダイレクトする前にコールバックをトリガーする必要があります。おそらく、authenticate_user!メソッドがユーザーがログインしていないことを検出したためです。

before_filter :authenticate_user!, :only => :edit

def not_authenticated_callback
  # do something
end

呼び出されていない場合authenticate_user!は呼び出さないでください。

4

2 に答える 2

0

私は醜い解決策を見つけました:

around_filter :intersect_warden

def intersect_warden
  success = false
  result = catch(:warden) do
    result = yield
    success = true
    result
  end

  unless success
    not_authenticated_callback
    throw(:warden, result)
  end
end
于 2012-10-08T15:50:31.770 に答える
-1

while using before_filter: authenticate_user! ,the action will not go inside your controller, if the user not logged in.

if you use before_filter, You cant access any functions inside your controller, when the user not logged in.

于 2012-10-08T14:55:07.430 に答える