Rails アプリで cancan、devise、および omniauth を使用しています。私は omniauth に非常に満足しており、メソッド current_user は役に立ちます。能力クラスも役に立ちます。ユーザーが登録すると、omniauth からのみメールを取得し、いくつかのパラメーターを使用して手動でユーザーを作成します。だから私はユーザーを作成する方法を工夫していません。
したがって、:database_authenticatable は必要ありません。これにより、パスワードなしでユーザーを保存できなくなります。ただし、それがない場合、ユーザーは、許可されていないリソースにアクセスしたときに、「/users/sign_in」ではなく「/」に移動します。
:database_authenticatable を使用せず、ユーザーが許可されていない場合は「/users/sign_in」に移動させたいと考えています。どうすればいいですか?
注: 私のコントローラーのほとんどすべてに、authenticate_user がきめ細かく設定されています。たとえば、次のようにします。
class UsersController < ApplicationController
before_filter :authenticate_user!, :except => [:index, :index_small, :show,
:new , :sign_in ]
before_filter :authenticate_user!
そのため、application_controllerで何かできるかどうかわかりません。すべてのコントローラーでこのフィルターを取り除くことができれば、それもいいでしょう。