2012-05-12 20 views
5

私のレールアプリでは、ユーザー登録にdeviseを使用しています。 ユーザー登録以外にも、管理者はバックエンドでユーザーを作成、編集、削除する必要があります。 その管理バックエンドを通じて新しいユーザーを作成する際に問題があります。Deviseでユーザーを手動で作成する方法

ブラウザでUsersController#newアクションを呼び出すと、私が作成したユーザー入力フォームが開きます。 Submitボタンをクリックすると、Devise :: RegistrationsController#createが呼び出されますが、私のUsersController#createアクションが呼び出されます。

adminバックエンドでユーザー作成を使用するときに、UsersController#createを呼び出す方法と、ユーザーが登録を使用するときにDevise :: RegistrationsController#createを呼び出すにはどうすればいいですか?

答えて

5

1)が考案するパス接頭辞を追加します。devise_for :users, :path_prefix => 'd'

2)rake routesを実行します。

user_registration POST /d/users(.:format) devise/registrations#create 
... 
users POST /users(.:format) users#create 

ので、Devise::RegistrationsControllerための第一の経路、第二あなたのUsersControllerため。

そして、あなたは単にadmin/new_user.html.erbで使用することができます。form_for User.new

0

をミハイルの答えの背面には、あなたはまた、「ユーザー」の代わりに、他のパス名を使用するように工夫伝えることができます。たとえば:

devise_for :users, path: 'auth' 

は安全だろう/認証/ sign_up、/認証/ sign_inなど、カスタム・ユーザー・ルートなどの工夫ルートにつながります。

(devise_forオプションの全リストはhereです)

関連する問題