有了一个基本的User
注册功能,(例如以下this tutorial)什么是临时启用/生产禁用它的最佳方式?我想要一个简单的开/关开关 - 数据库控制台对我来说没问题。Rails的:暂时禁用用户注册
回答
有多种方式来实现它。
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
完美!非常感谢。最后的选择正是我想象的。这是一个常见的解决方案吗 –
WordPress使用它:) https://codex.wordpress.org/Database_Description#Table:_wp_options –
真棒!这对我来说足够了。谢谢! –
- 1. 注册用户和未注册用户
- 2. Rails用户注册使用Twitter/Facebook/Google?
- 3. 注册后注册用户
- 4. 用PHP注册MySQL的用户注册
- 5. Rails的注册用户和非注册一个
- 6. 如何禁用/帐户/注册django注册?
- 7. 注册用户?
- 8. 注册用户
- 9. Rails设计额外用户注册
- 10. Rails:似乎无法注册用户
- 11. Rails用户注册邮件确认
- 12. AngularJS Rails用户无需注册
- 13. 用Javascript注册用户注册登录
- 14. ActiveX暂时禁用
- 15. 暂时禁用mouseDown
- 16. pulltorefresh.js - 禁用暂时
- 17. 暂时禁用.hover
- 18. 暂时禁用Rprofile
- 19. 用户注册(注册)的Wordpress REST API
- 20. 禁用自我注册
- 21. howto禁用流星账户用户注册?
- 22. 注册用户PHP
- 23. 用户注册类
- 24. Android用户注册
- 25. django用户注册
- 26. MediaWiKi用户注册
- 27. CouchApp用户注册
- 28. IdentityServer3用户注册
- 29. 注册用户:CreateUserWizardStep
- 30. WordPress注册与用户注册分离
不要相信这是一个开箱即用的东西。如果您正在编写自定义代码,那么您也必须编写该部分。但我想一个好的选择是在你的控制器中添加一个过滤器,比如'require_logged_in_user',然后你可以通过注释将其禁用。 – sourcx
是的,我怀疑是否有任何开箱即用的东西。我实际上正考虑启用/禁用“用户”控制器的实际注册功能并呈现备用视图。但我不确定这是否会是一种典型的做法......我认为我需要某种模式来保留注册是否启用? –
您可以随时在before_action之后放置一个条件,并调用确认是否需要auth的方法。该方法中的条件可以基于env变量,config变量或db值。 – Swards