`
jacky
  • 浏览: 25335 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

Rails 2.1 map.namespace 运用实例

阅读更多
数据库中有表categories,想做个admin后台来进行维护操作,这时候,map.namespace 就能帮助我们省却很多功夫。
步骤如下:
1. Generate categories controller
ruby script/generate scaffold Category category_name:string category_name_md5:string sequence:int

2. 创建 controllers\admin\categories_controller.rb
class Admin::CategoriesController < ApplicationController
内容同CategoriesController

3. 在routs.rb里
map.namespace :admin do |admin|
      admin.resources :categories
   end

4. 把 views\categories\*.* 复制到 views\admin\categories\
5. 修改 views\admin\categories\下的文件
<%= link_to 'Back', admin_categories_url %>   
对应关系如下:
admin_categories_url    =>  /admin/categories/  get
admin_category_url(category) => /admin/categoies/1 get
admin_category_url(category) => /admin/categoies/1 get
edit_admin_category_path(category) => /admin/categories/1/edit get
<% form_for([:admin, @category]) do |f| %> 
=> /admin/categories/update PUT

而delete方法,我只试出采用如下link方能成功
<%= link_to 'Destroy', "/admin/categories/#{category.id}", :confirm => 'Are you sure?', :method => :delete %>

6. Admin::CategoriesController里的跳转更改为
format.html { redirect_to([:admin, @category]) }
format.html { redirect_to(admin_categories_url) }

等等

这时候,你可以把CategoriesController无用的方法删去了,再加上给admin一个session过滤,一个微型管理后台就完成了。
分享到:
评论
1 楼 wangxb_st 2009-08-25  
可以使用命名路由


<%= link_to 'Destroy', admin_category_path(category), :confirm => 'Are you sure?', :method => :delete %>

相关推荐

Global site tag (gtag.js) - Google Analytics