[英]Adding a “tools mode” to rails app
假设我有一个Rails应用,其内容是对公众只读的,但是我想构建工具来编辑该内容(或使用脚手架)。 我不想公开地公开创建/更新/删除操作(即使受密码保护),但我想在与生产数据库交互的本地网络中安装一台具有此功能的服务器。
因此,我正在考虑为此编写一个插件,这将添加一个工具导轨环境(如开发,生产和测试)以及一种将控制器方法配置为“仅工具”的方式。 当不在工具模式下时,对仅工具操作的请求将重定向到标准404页面。
在我重新发明轮子之前,是否已经存在类似的东西? 是否有解决此问题的更好方法?
有趣的想法-除了创建自定义环境以外,它还不是Application控制器中的一个before_filter吗?
before_filter :can_access_tools, :except => [:show, :index]
其他控制器会根据需要跳过它。
为什么将其作为独立的环境? 我要做的(和已经做的)是将编辑功能放在一个单独的命名空间中(我通常将其称为admin),然后使用before过滤器仅允许具有admin角色的用户访问这些控制器。 因此,如果您的应用程序显示小部件,则可以在url / widgets后面的普通应用程序中看到它们。 为了编辑它们,您将转到/ admin / widgets(并且还必须以admin身份登录)。 我不仅创建了路由名称空间,还创建了一个AdminController,该名称空间中的所有其他控制器都进行了扩展。 然后,您可以将需要应用于所有过滤器的所有过滤器放在一个位置。
您可以通过放入Active Scaffold之类的东西来提供一个非常干净的界面来对其执行CRUD操作,从而很快获得用于此目的的UI。 您也可以在此部分中查看Streamlined或Hobo 。
我经常设置额外的环境来测试多个上下文,但是在这种情况下,这似乎有些过头了。 如果您通过授权(要求管理员的角色)而不是通过访问权限(仅本地服务器可以访问)来限制编辑功能,则它还允许您在旅途中而不是在办公室中进行更改。
嗯...我知道herokugarden允许您通过浏览器在线编辑代码,这样行得通吗?
这是演示的链接
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.