我有模型A,B,C,D等。我有这些模型的常用控制器/视图/助手。这些是由基于表单的应用程序中的一组内容作者访问,以将数据填充到数据库中。内容作者还将拥有作者,出版商,超级管理员等类别。基本上我们已经构建了一个迷你内容管理系统。
一组其他用户(与上述设置无关)需要访问其中一些模型中的数据。但对于那些人的观点是完全不同。我也不希望这些用户拥有允许他们查看的模型的编辑屏幕。基本上这些人是使用该应用程序作为只读/分析数据存储的最终用户。
我如何做到这一点?我应该创建单独的控制器并为用户网站调用这些模型吗?如何确保网站用户无法访问cms屏幕?这样的应用程序的任何指针,设计原则,路由方法,宝石?
答案 0 :(得分:1)
我如何做到这一点?我应该为用户网站创建单独的控制器并调用这些模型吗?
我会为后端和前端创建一组不同的控制器。我会将后端控制器移动到命名空间。有关命名空间的更多信息:http://guides.rubyonrails.org/routing.html#controller-namespaces-and-routing
如何确保网站用户无法访问cms屏幕?这样的应用程序的任何指针,设计原则,路由方法,宝石?
为此,您需要某种身份验证和授权。一些例子:
关于此问题有一些很好的截屏视频:
答案 1 :(得分:0)
您需要一层身份验证。
最简单的方法,我会说最常见的方法是为每个部分制作单独的控制器,并在每个部分中添加before_filter
方法进行身份验证并授权用户继续(通常为is_admin?
用户模型上的方法),如果不允许用户,则重定向并返回错误消息。
您可以将控制器与namespaces分开(例如/ admin / authors,/ admin / books / 1 / edit等),并以这种方式保持RESTful。
如果您需要更复杂的架构,可以使用其中的任何授权工具http://ruby-toolbox.com/categories/rails_authorization.html