Rails:暂时禁用用户注册

时间:2015-10-15 17:21:11

标签: ruby-on-rails ruby-on-rails-4 authentication

使用基本的User注册功能(例如关注this tutorial),在生产中临时启用/禁用它的最佳方法是什么?我喜欢某种简单的开/关开关 - 数据库控制台可以和我一起使用。

1 个答案:

答案 0 :(得分:1)

有很多方法可以实现它。

<强> 1。路由

#config/routes.rb
resources :sessions if Rails.env.development?

非常基本但有效 - 您可以使用env对象来确定您当前正在运行的环境类型,相应地允许或拒绝路由。

<强> 2。控制器级

接下来,您拥有控制器级功能。

这样您就可以发布这样的反馈:

#app/controllers/users_controller.rb
class UsersController < ApplicationController
   def create
     redirect_to root_path, notice: "Sorry, you cannot register" if Rails.env.production?
   end
end

第3。模型级别

最后,模型水平。

这将连接到您的数据库。

你可以这样做:

#app/models/option.rb
class Option < ActiveRecord::Base
   #columns id | name | value | created_at | updated_at
   scope :prod_sessions, -> { find_by(name: "prod_sessions").pluck(:value) }
end

选项表中,您可以添加以下记录:

name: "prod_sessions"
value: 0

这样,您就可以调用以下内容:

if Option.prod_sessions?
   #do something here
end