0

新しい Rails 4 アプリで Active Directory に対してユーザーを認証するために、Authlogic と net-ldap を使用しています。うまく動作します...

ただし、すべてのユーザーを別のデータベースからインポートして、アカウントを最初から作成する必要がないようにしたいと思います (また、各ユーザーは自分のプロファイルを完成させるためにスーパーバイザーとして別のユーザーを選択する必要があるため、ニワトリの卵になります)空の users テーブルから始めると、ある種の問題になります)。新しいユーザー テーブルには、ソース ユーザー テーブルにはない必須フィールドがあるため、ユーザーがアプリにアクセスする前に、最初のログイン時にプロファイルを完成させたいと考えています。

before_create user_session 検証login_count is nullなどを行う方法はありますか? この種のことを処理するためのより良い方法はありますか?

任意の提案をいただければ幸いです。ありがとうございました。

4

1 に答える 1

0

completed_profileブール型のユーザー テーブルにフィールドを追加します。

rails g add_completed_profile_to_users completed_profile:boolean

次に、 application_controller.rbにフィルター メソッドを作成します。

  def complete_profile
    if current_user.completed_profile?
      redirect_to the_path_after_log_in
    else
      redirect_to edit_profile_path, error: "Please update your profile."
    end
  end

*field_one と field_two は、アプリに進む前に入力する必要があるフィールドです。*

アプリの他のコントローラーで:

before_filter :complete_profile

edit_profile_path = users#editユーザー コントローラーでフィルターが次のようになる場合、このフィルターはコントローラーと、プロファイルの編集ページまたは新しいアカウント ページのレンダリングに応答するアクションには適用しないでください。

before_filter :complete_profile, except: ['edit', 'update', 'new', 'create']

バリアント 2、移行なし:

application_controller.rbでフィルター メソッドを作成します。

  def complete_profile
    if current_user.field_one.present? && current_user.field_two.present?
      redirect_to the_path_after_log_in
    else
      redirect_to edit_profile_path, error: "Please update your field_one and field_two."
    end
  end

アプリの他のコントローラーで:

before_filter :complete_profile
于 2013-08-09T06:08:31.610 に答える