2016-07-23 10 views
0

Devitsでは、登録可能なシンボルフォームを削除することで、ユーザーが直接サインアップできるように制限できます。しかし、私のテーマは、独自のユーザー登録ページとコントローラを作成し、管理者が手動でユーザーを作成できるようにすることです。私は何度も試してみましたが、問題は、パスワードを暗号化してログイン中にアクセスできるようにすることです。もし何か考えがあれば助けてください。ここで登録を制限し、独自のサインアップを作成するには?

+0

サインアップモジュールを削除しないでください – uzaif

+0

しかし、私は管理者だけがログインでは不可能なユーザーを作成します。私がログインしていれば、あなたがすでにログインしていることを知らせるroot_pathにリダイレクトされます。アイデアはありますか? @uzaif –

答えて

0

私は問題

  1. を解決するためにこれをやった私は削除しました。登録可能なフォームのユーザーモデル
  2. 次に、データを作成するためのユーザーコントローラーとフォーム。
  3. 次に、ユーザーモデルで必要な検証を設定します。
  4. データを送信する際、ユーザーモデルは自動的に暗号化され、パスワードが保存されます。

を手伝ってくれてありがとう。

1

は、いくつかの提案とソリューションは以下のとおりです。

  1. Userモデルから:regesterableを削除しないでください。代わりに、別のファイルregistrationファイルをroutes.rbファイルに定義するだけで、他の人が登録するパスを見つけることができなくなります。例: devise_for :users, path_names: { sign_up: 'register_not_allowed' }

  2. Adminモジュールを作成し、このモジュールの下UsersControllerコントローラを定義します。例えばcontroller

    module Admin class UsersController < ApplicationController end end

  3. 新しいを作成し、編集は、あなたが任意のコントローラのために行うようは、更新方法をを作成して表示します。 emailpasswordpassword_confirmationのフィールドを持つフォームを作成し、Userモデルの属性である追加フィールドも作成します。次に、コントローラadmin/usersの強力なパラメータでそれらを要求します。このフォームを使用してユーザーを作成すると、パスワードの暗号化は不要です。

アプリ/ビュー/管理者/ユーザー/ _form.html.erb

<%= form_for [:admin, @user] do |f| %> <% end %>

関連する問題