有了一个基本的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. Rails + Devise + API +用户注册
- 2. 注册用户和未注册用户
- 3. Rails用户注册使用Twitter/Facebook/Google?
- 4. 注册后注册用户
- 5. 的Rails 4.0用户认证/注册
- 6. Rails:用户注册的针脚列表
- 7. 在Rails中注册不同的用户?
- 8. 用PHP注册MySQL的用户注册
- 9. Rails的注册用户和非注册一个
- 10. Mailgun帐户注册后立即禁用
- 11. 如何禁用/帐户/注册django注册?
- 12. 禁用Drupal用户注册时自动登录
- 13. 注册用户?
- 14. 注册用户
- 15. Rails设计额外用户注册
- 16. Rails:注册后登录用户
- 17. Rails:似乎无法注册用户
- 18. AngularJS Rails用户无需注册
- 19. Rails用户注册邮件确认
- 20. 用Javascript注册用户注册登录
- 21. 用户注册(注册)的Wordpress REST API
- 22. pulltorefresh.js - 禁用暂时
- 23. 暂时禁用.hover
- 24. 暂时禁用Vimperator
- 25. 暂时禁用mouseDown
- 26. 暂时禁用Rprofile
- 27. ActiveX暂时禁用
- 28. 暂时禁用Heroku帐户插件
- 29. 禁用自我注册
- 30. 禁用流星注册
不要相信这是一个开箱即用的东西。如果您正在编写自定义代码,那么您也必须编写该部分。但我想一个好的选择是在你的控制器中添加一个过滤器,比如'require_logged_in_user',然后你可以通过注释将其禁用。 – sourcx
是的,我怀疑是否有任何开箱即用的东西。我实际上正考虑启用/禁用“用户”控制器的实际注册功能并呈现备用视图。但我不确定这是否会是一种典型的做法......我认为我需要某种模式来保留注册是否启用? –
您可以随时在before_action之后放置一个条件,并调用确认是否需要auth的方法。该方法中的条件可以基于env变量,config变量或db值。 – Swards