Rails 中的管理界面

发布于 2024-08-25 07:20:58 字数 868 浏览 5 评论 0原文

我有一个管理控制器位于 controllers/admin/admin_controller.rb 我还有一个页面控制器位于 controllers/admin/pages_controller.rb pages_controller.rb 继承自 admin_controller.rb 在routes.rb中,我有一个管理命名空间,如下所示:

map.namespace :admin do |admin|
   admin.resources :pages
end
  • 我希望管理员在pages_controller.rb中具有基本的CRUD功能(我知道如何做到这一点)
  • 我想要indexshow 方法可供前端用户使用
  • 我希望 show 和 index 操作使用单独的视图,但使用相同的代码。

问题:

  • 我应该为前端创建一个新的pages_controller,还是共享方法indexshow
  • 如果共享,我将如何根据网址是 /admin/pages 还是 /pages 显示单独的视图
  • 如果共享,我应该放置 pages_controller/controllers/admin (现在的位置)还是在 /controllers 中?

非常感谢。

I have an admin controller located in controllers/admin/admin_controller.rb
I also have a pages controller located in controllers/admin/pages_controller.rb
pages_controller.rb inherits from admin_controller.rb
in routes.rb, I have an admin namespace as such:

map.namespace :admin do |admin|
   admin.resources :pages
end
  • I want the admin have basic CRUD functionality in pages_controller.rb (I know how to do that)
  • I want the index and show methods to be available to front-end users
  • I would like the show and index actions to use separate views, but the same code.

Questions:

  • Should I create a new pages_controller for the front-end, or share the methods index and show?
  • If share, how would I display separate views depending on whether the url is /admin/pages or /pages
  • If share, should I place pages_controller in /controllers/admin (where it is now) or just in /controllers?

Thank you very much.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

赠佳期 2024-09-01 07:20:58

我会把它们分开。尽管逻辑现在可能相同,但它们实际上是两个不同的东西。将它们分开将有助于您提高安全性,并允许您在必要时进行更改,例如,您可以决定在加载页面时管理查询还应该:包括其他内容等。在路线中,您可以添加:

map.resources :pages, :only => [:index, :show]

您的意愿和视图对于每一对操作/控制器,例如,一个在 view/admin/pages 中,一个在 /view/pages 中。如果这两个是重复的代码,请将其提取到部分代码中并从两者中渲染它们。

I would keep them separate. Although the logic maybe the same now they are in effect two different things. Keeping them separate will help you with security and allow you to make changes later on if necessary, for example you may decide when loading a page the admin query should also :include something else etc. In the routes you can add:

map.resources :pages, :only => [:index, :show]

Your will a views for each action/controller pair, e.g. one in view/admin/pages and one in the /view/pages. If these two are duplicating code, extract it into partials and render them from both.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文