我希望完全关闭我的注册系统(暂时)并且只有1个管理员帐户可以进入数据库或播种。
这可能与Devise有关吗?或者关闭注册还会关闭种子/佣金任务,我的管理员用户在其中吗?
我目前有一个具有典型设计设置的用户模型,其管理列是布尔值 - 我目前通过进入rails控制台并手动更改它来设置该列中的该列。
任何帮助都会很棒!
由于
答案 0 :(得分:1)
devise wiki中有一个详细的步骤;但基本上你可以跳过生成注册路线:
devise_for :users, :skip => :registrations
通过无法注册,这将使其成为单一用户系统。
这需要使用种子文件或通过控制台创建第一个用户。
或者您可以创建自己的控制器来处理在第一个用户之后切断的注册:
devise_for :users, :controllers => {:registrations => "registrations"}
# app/controllers/registrations_controller.rb
class RegistrationsController < Devise::RegistrationsController
def create
if User.any?
redirect_to root_path, alert: 'Only one user allowed!' and return
end
super
end
end
除非您的种子/ rake任务正在做一些非常奇怪的事情,比如自动化Web浏览器,否则这将对您的种子/ rake任务没有影响,因为它们通常涉及通过模型直接操作数据库并且根本不通过控制器:
# Example of seeding an admin user:
admin = User.create_with(surename: 'Doe', forename: 'John').find_or_create_by(email: 'admin@example.com')
admin.add_role(:admin)
答案 1 :(得分:0)
您应该能够删除用于注册的设计路线并仍然在用户中播种。只要您仍然拥有会话的设计路线,该用户就可以登录/注销。