我正在尝试从Devise中删除/禁用user/sign_up路径。我这样做是因为我不希望随便的人都可以访问该应用程序。我通过在route.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 "Profile", edit_user_registration_path, class: "btn btn-info btn-flat" %>我想保留该信息,以便用户可以更新其个人资料。
我知道是因为devise_for :users, :skip => :registration这个问题有解决方案吗?
跑步
设计(4.2.0、4.1.1、4.1.0)
导轨4.2.5
ruby 2.3.0p0(2015-12-25修订版53290)[x86_64-linux]

最佳答案

最简单的方法是从模型中定义的默认列表(用于应用程序用户的类名,通常是用户)中删除:registerable devise模块。

class User < ActiveRecord::Base
  devise :database_authenticatable, :registerable,
         :recoverable, :rememberable, :trackable, :validatable

  ...
end
因此,您将像这样:
class User < ActiveRecord::Base
  devise :database_authenticatable,
         :recoverable, :rememberable, :trackable, :validatable

  ...
end

关于ruby-on-rails - 如何从设计中删除/禁用注册,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39773890/

10-13 02:17