我在Rails 3应用程序中使用Devise,但在这种情况下,用户必须由现有用户创建,该用户确定他/她将拥有哪些权限.
因此,我想要:
我怎样才能做到这一点?
目前,我通过以下方式有效地删除了这条路线devise_for :users:
match 'users/sign_up' => redirect('/404.html')
Run Code Online (Sandbox Code Playgroud)
这有效,但我想有更好的方法,对吧?
正如Benoit Garret所说,在我的情况下,最好的解决方案是跳过创建注册路线,并创建我真正想要的那些.
为此,我首先运行rake routes,然后使用输出重新创建我想要的.最终结果如下:
devise_for :users, :skip => [:registrations]
as :user do
get 'users/edit' => 'devise/registrations#edit', :as => 'edit_user_registration'
put 'users' => 'devise/registrations#update', :as => 'user_registration'
end
Run Code Online (Sandbox Code Playgroud)
注意:
:registerable在我的User模型devise/registrations 处理更新电子邮件和密码删除默认Devise路径的路由; 即:
devise_for :users, path_names: {
sign_up: ''
}
Run Code Online (Sandbox Code Playgroud)