3

アプリの認証メカニズムとして Devise を使用しています。
ユーザー統計、プロフィール写真、ユーザーに関するその他の関連情報など、ユーザー モデルに追加情報を追加したいと考えています。これを実現するにはどうすればよいですか?
「rails g devise : views」を作成した後でも、カスタマイズできるビューのみが作成され、編集するコントローラーが表示されません。

それ以外の場合、要件に合わせてデバイスの宝石自体を編集できますか?
GEM をカスタマイズしようとしたことはありません。既存の宝石のカスタマイズを開始するためのリンクはありますか?

4

1 に答える 1

4

Devise 自体は Rails エンジンであり、変更したいファイルのコピーをローカル ディレクトリに作成することで、その機能をオーバーライドできます。Rails は、リクエストに対して適切なコントローラーを探し始めると、最初にローカル アプリケーションをチェックし、次にベンダー/gem、そしてロードされた gem 自体をチェックします。

Devise の場合、コントローラーの変更は次のように行う必要があると述べています。

コントローラーの構成

ビュー レベルでのカスタマイズでは不十分な場合は、次の手順に従って各コントローラーをカスタマイズできます。

1) Admins::SessionsController などのカスタム コントローラーを作成します。

class Admins::SessionsController < Devise::SessionsController
end 

2) ルーターにこのコントローラーを使用するように指示します。

devise_for :admins, :controllers => { :sessions => "admins/sessions" } 

3) コントローラーを変更したため、"devise/sessions" ビューは使用されないため、"devise/sessions" を "admin/sessions" にコピーすることを忘れないでください。

Devise はフラッシュ メッセージを使用して、サインインが成功したか失敗したかをユーザーに知らせることに注意してください。Devise は、アプリケーションが必要に応じて「flash[:notice]」と「flash[:alert]」を呼び出すことを想定しています。

引用元は次のとおりです。https://github.com/plataformatec/devise

于 2010-11-07T13:00:55.073 に答える