[英]Devise close registration but seed database with admin account
我正在尋求完全關閉我的注冊系統( 暫時 ),並且只有1個可以注冊到數據庫或種子化的管理員帳戶。
Devise完全有可能嗎? 還是關閉的注冊也會關閉我的管理員用戶的種子/耙任務?
我目前有一個具有典型devise設置的用戶模型,其中的admin列是布爾值-我目前正在開發列中的列,方法是進入Rails控制台並手動更改它。
任何幫助將是輝煌的!
謝謝
在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
除非您的Seed / Rake任務執行了諸如使Web瀏覽器自動化之類的真正奇怪的工作,否則這對您的Seed / Rake任務沒有任何影響,因為它們通常涉及直接通過模型來操縱DB,並且根本不會經過控制器:
# 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)
您應該能夠刪除設計路線進行注冊,並且仍然可以在用戶中播種。 只要您仍具有會話的設計路由,該用戶便可以登錄/注銷。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.