2011-09-05 54 views
2

首先,我遵循了Agile Web Development with Rails第三版本书。不过,我希望能够创建应用程序的管理部分。有一个学位,我有以下几点:Rails为应用程序构建管理控制台

控制器联系

登录,注销,指数

控制器产品

我想创建在管理控制器的部分控制产品。 我已经试过在网上环顾四周,在系统上玩耍。但我对这个问题感到困惑。

我试着在Admin/Views文件夹中创建一个Products页面。这使我可以在以下位置查看产品:// localhost/admin/products。这很好,但如果我想编辑和创建产品,我想// localhost/admin/products /:id/edit等,编辑等只能发生在管理URl内。工作和Rails

提前2.0.2

感谢

回答

6

你真要使用Rails的版本比2.0.2如果你能 - 2.3.14是在V2最新并且v3.1.0在不久之前实际上出来了。

要回答你的问题,你想要查看路由命名空间,它允许你在一个命名空间内将路由/资源分组在一起,例如admin。

namespace :admin do 
    root :to => 'admin#index' #Default route for when you got to /admin 
    resources :products 

这最后一条路线将在/ admin命名空间内为您的产品模型创建所有7条宁静路线。您需要一个名为app/controllers/admin/products_controller.rb的控制器,您将在其中创建索引,创建,更新...等方法以及app/views/admin/views/productions中的相应视图

+0

感谢约翰我想这可能是这种情况。然而,在部署级别做这件事没有想法。含义App1是网站,管理员App2在www.domain.com/admin上放置App2,可以这样做吗? – John

+0

它可以做到,但我更愿意将它全部保存在一个应用程序和相同的回购。您最终会在模型层之间共享应用程序之间的大量代码,除非真的需要考虑它,那么我会将它全部保存在一个应用程序中 - 尤其是如果您不熟悉rails。在我一直在做Rails开发的3年中,我还没有创建过独立的应用程序。 –

+0

好酷谢谢! – John

0

您可以使用这个命名空间。在你的routes.rb:

map.namespace(:admin) do |admin| 
admin.resources :products 
end 

,然后生成管理/产品控制器,并与REST使用:

script/generate controller admin/products 


admin_products_path 
edit_admin_products_path(product.id) 
相关问题