2017-01-23 4 views
0

私は従業員のリストを見ることができるrails従業員ダッシュボードアプリケーションを作成しています。このアプリケーションでは、管理ダッシュボードページを表示できる唯一のユーザーです。私は素敵なadministrate gemを使って管理機能を実装しました。ダッシュボードを表示するアプリの例は、このURLをクリックすると表示されます。Administrate example私のダッシュボードは同じもので、何も特別なものではありません。しかし、私はログインして従業員のリストを編集したり削除したりするために、他のユーザ/アミン(Human Resources)を作成する必要がある機会に遭遇します。Devate Registration ControllerをAdministrateダッシュボードに接続することはできますか?

認証のために、私は素晴らしいdevise宝石を使用しており、ログイン、サインアップ、サインアウトなどに成功しました。管理ダッシュボードで新しいユーザーを作成できるようにする必要があります。ユーザーフィールドを表示するようにダッシュボードを設定しましたが、現在ユーザーを作成できません。ここで参照

enter image description here

のための私のユーザーダッシュボードの絵があり、私が直面しています問題は、私はEncrypted passwordのパスワードを入力したときに、私は理由Password can't be blank検証でそうすることができませんということです。

私のログを見ると、私はdeviesのサインアップページに行くと、Devise::RegistrationsControllerに行き、administrategemを持つユーザーの作成はAdmin::UsersControllerになります。確かに、コミュニティの誰かが、管理者のダッシュボードを使ってユーザーを作成するという組み合わせを開発者と組み合わせて使用​​しています。誰もこの機能をカスタマイズする方法の推奨事項はありますか?

答えて

1

これは強いのparamsに問題があるように思えます。これらのパラメータをサニタイズする必要があります。きれいな解決策は、少なくとも私にとっては、とても似RegistrationsControllerを上書きすることです:

# app/controllers/registrations_controller.rb 
class RegistrationsController < Devise::RegistrationsController 

    private 

    def sign_up_params 
    params.require(:user).permit(:email, :password, :password_confirmation) # list every parameter you'd like to register with 
    end 
end 

などのようなroutes.rbをでこのコントローラをマップ:

devise_for :users, :controllers => { registrations: 'registrations' } 

あなたはこのarticleにインスピレーションを得ることができます。

また、encrypted_pa​​sswordフィールドを操作しようとしています。それは良い考えではありません。 Deviseがそれをあなたのために処理します。代わりにパスワードの入力をレンダリングすることができます(これはすべて問題になります)。

0

パラメータが問題であるようです。保護されたパラメータを設定しようとしています。次のパラメータのみを送信してください。

[:name, :email, :password, :password_confirmation, :mobile ]

あなたがあなたのユーザーモデルで:confirmableを持っている場合は、ユーザーを確認する必要があり、ユーザーを追加した後Admin::UsersController

内のパラメータ上許されていることを確認します。 userオブジェクトの作成後にAdmin::UsersControllerで行うことができます。

user.confirm

関連する問題