我在 Rails 3应用程序中使用 Devise,但在这种情况下,用户必须由现有用户创建,用户决定他/她将拥有什么权限。
因此,我要:
我怎么能这么做?
目前,我通过在 devise_for :users之前放置以下内容,有效地消除了这条路线:
match 'users/sign_up' => redirect('/404.html')
行得通,但我想还有更好的办法,对吧?
正如 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
请注意:
:registerable在我的 User模型devise/registrations处理更新电子邮件和密码删除默认设计路径的路由; 即:
devise_for :users, path_names: {
sign_up: ''
}