Rails: レンダリングしてすぐに終了する 質問する

Rails: レンダリングしてすぐに終了する 質問する

omn​​iauth gem を使用すると、プロバイダーに関係なく、成功したログインに対して単一のルート コールバックを定義する必要があります。

def auth_callback 

        auth_data = request.env['omniauth.auth']

        if auth_data.has_key('something')
            process_one(auth_data)
        else
            process_two(auth_data)
        end

        # No view is available here

end


def process_one
    # do something then render view for process_one
    return
end

def process_two
    # do something then render view for process_two
    return
end

コントローラーが auth_callback メソッドに戻って、対応するビュー (存在しない) を表示しないようにするにはどうすればよいですか? process_one または process_two メソッドが返されたら、処理は完了したと見なす必要があります。

ベストアンサー1

renderこれらのメソッドを具体的に呼び出さないのはなぜですか?

def process_one
 # do something then render view for process_one
 render :process_one and return
end

Rails は、すでに実行されたことを検出し、再度レンダリングを試行しないようにします。

おすすめ記事