数据库中有表categories,想做个admin后台来进行维护操作,这时候,map.namespace 就能帮助我们省却很多功夫。
步骤如下:
1. Generate categories controller
2. 创建 controllers\admin\categories_controller.rb
3. 在routs.rb里
4. 把 views\categories\*.* 复制到 views\admin\categories\
5. 修改 views\admin\categories\下的文件
而delete方法,我只试出采用如下link方能成功
6. Admin::CategoriesController里的跳转更改为
等等
这时候,你可以把CategoriesController无用的方法删去了,再加上给admin一个session过滤,一个微型管理后台就完成了。
步骤如下:
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过滤,一个微型管理后台就完成了。