如何从设计中删除/禁用注册 [英] How to Remove/Disable Sign Up From Devise

查看:52
本文介绍了如何从设计中删除/禁用注册的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试从Devise中删除/禁用 user / sign_up 路径。我这样做是因为我不希望随便的人都可以访问该应用程序。我通过在route.rb

I'm trying to remove/disable the user/sign_up path from Devise. I'm doing this because I don't want random people gaining access to the application. I have it partly working by adding the following in routes.rb

Rails.application.routes.draw do
  devise_scope :user do
    get "/sign_in" => "devise/sessions#new" # custom path to login/sign_in
    get "/sign_up" => "devise/registrations#new", as: "new_user_registration" # custom path to sign_up/registration
  end

...

devise_for :users, :skip => :registration

end

但是,这会中断<%= link_to个人资料,edit_user_registration_path,类别: btn btn-info btn-flat;我想保留%>

,以便用户可以更新其个人资料。
我知道是因为 devise_for:users,:skip => :registration

which I want to keep so that users can update their profile. I know it's because of the devise_for :users, :skip => :registration

是否有解决此问题的方法?

Is there a solution for this issue?

运行中

Devise(4.2.0、4.1.1、4.1.0)

Devise (4.2.0, 4.1.1, 4.1.0)

Rails 4.2.5

Rails 4.2.5

ruby​​ 2.3.0p0(2015-12- 25版本53290)[x86_64-linux]

ruby 2.3.0p0 (2015-12-25 revision 53290) [x86_64-linux]

推荐答案

从Devise删除sign_up路径的解决方案

routes.rb

Rails.application.routes.draw do
  devise_scope :user do
    get "/sign_in" => "devise/sessions#new" # custom path to login/sign_in
    get "/sign_up" => "devise/registrations#new", as: "new_user_registration" # custom path to sign_up/registration
  end

...在上述声明之后,在 routes.rb

...After the statement above, add the following below in routes.rb

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

这将删除/禁用用户/ sign_up Devise的路径而不会破坏 edit_user_registration_path

This will remove/disable the user/sign_up path for Devise without breaking edit_user_registration_path

重新启动Rails服务器,它应该工作。

Restart your rails server and it should work.

这篇关于如何从设计中删除/禁用注册的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆