Rails中的管理界面

Yuv*_*rmi 5 controller ruby-on-rails admin

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

map.namespace :admin do |admin|
   admin.resources :pages
end
Run Code Online (Sandbox Code Playgroud)
  • 我希望管理员具有基本的CRUD功能pages_controller.rb(我知道该怎么做)
  • 我希望这些indexshow方法可供前端用户使用
  • 我希望show和index操作使用单独的视图,但使用相同的代码.

问题:

  • 我应该创建一个新pages_controller的前端,或共享的方式indexshow
  • 如果份额,如何将取决于URL是否是我独立显示观点/admin/pages/pages
  • 如果份额,我应该把pages_controller/controllers/admin(它是现在),或者只是/controllers

非常感谢你.

tsd*_*own 3

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

map.resources :pages, :only => [:index, :show]
Run Code Online (Sandbox Code Playgroud)

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