Rails帮助构建管理区域 – 路由问题
我正在建立一个管理区域。
在app / controllers中
application_controller.rb public_controller.rb admin_controller.rb kategoris_controller.rb
在app / controllers / admin中
kategoris_controller.rb
我的路线档案:
resources :kategoris namespace :admin do resources :kategoris end
我的kategori索引文件在app / views / admin / kategories / index中
Listing kategoris
Navn 'Are you sure?', :method => :delete %>
我的kategori控制器在Admin / kategoris_controller.rb中
class Admin::KategorisController @kategoris } end end # GET /kategoris/1 # GET /kategoris/1.xml def show @kategori = Kategori.find(params[:id]) respond_to do |format| format.html # show.html.erb format.xml { render :xml => @kategori } end end # GET /kategoris/new # GET /kategoris/new.xml def new @kategori = Kategori.new respond_to do |format| format.html # new.html.erb format.xml { render :xml => @kategori } end end # GET /kategoris/1/edit def edit @kategori = Kategori.find(params[:id]) end # POST /kategoris # POST /kategoris.xml def create @kategori = Kategori.new(params[:kategori]) respond_to do |format| if @kategori.save format.html { redirect_to(@kategori, :notice => 'Kategori was successfully created.') } format.xml { render :xml => @kategori, :status => :created, :location => @kategori } else format.html { render :action => "new" } format.xml { render :xml => @kategori.errors, :status => :unprocessable_entity } end end end # PUT /kategoris/1 # PUT /kategoris/1.xml def update @kategori = Kategori.find(params[:id]) respond_to do |format| if @kategori.update_attributes(params[:kategori]) format.html { redirect_to(@kategori, :notice => 'Kategori was successfully updated.') } format.xml { head :ok } else format.html { render :action => "edit" } format.xml { render :xml => @kategori.errors, :status => :unprocessable_entity } end end end # DELETE /kategoris/1 # DELETE /kategoris/1.xml def destroy @kategori = Kategori.find(params[:id]) @kategori.destroy respond_to do |format| format.html { redirect_to(kategoris_url) } format.xml { head :ok } end end end
我的Admin控制器在views / admin / admin_controller.rb中
class Admin::AdminController < ApplicationController def index end end
当我访问http:// localhost:3000 / admin / kategoris时出现以下错误:
ActionController::RoutingError in Admin/kategoris#index Showing C:/Rails/konkurranceportalen/app/views/admin/kategoris/index.html.erb where line #14 raised: No route matches {:action=>"show", :controller=>"kategoris", :id=>#} Extracted source (around line #14): 11: 12: 13: 14: 15: 16: <%= l
但我能够在http:// localhost:3000 / admin / kategoris / new上创建一个新的然后我重定向到http:// localhost:3000 / kategoris / name-of-new-kategori而不是http:/ /本地主机:3000 /管理/ kategoris /名称-的-新驾驶员学校
开发日志:
Started GET "/admin/kategoris" for 127.0.0.1 at 2011-03-03 16:17:12 +0100 Processing by Admin::KategorisController#index as HTML [1m[36mKategori Load (0.0ms)[0m [1mSELECT `kategoris`.* FROM `kategoris`[0m Rendered admin/kategoris/index.html.erb within layouts/application (15.0ms) Completed in 160ms ActionView::Template::Error (No route matches {:action=>"show", :controller=>"admin/kategoris", :id=>#}): 11: 12: 13: 14: 15: 16: 'Are you sure?', :method => :delete %> 17: app/views/admin/kategoris/index.html.erb:14:in `block in _app_views_admin_kategoris_index_html_erb__324114984_51120168__127142517' app/views/admin/kategoris/index.html.erb:11:in `each' app/views/admin/kategoris/index.html.erb:11:in `_app_views_admin_kategoris_index_html_erb__324114984_51120168__127142517' app/controllers/admin/kategoris_controller.rb:7:in `index' Rendered C:/Ruby192/lib/ruby/gems/1.9.1/gems/actionpack-3.0.3/lib/action_dispatch/middleware/templates/rescues/_trace.erb (1.0ms) Rendered C:/Ruby192/lib/ruby/gems/1.9.1/gems/actionpack-3.0.3/lib/action_dispatch/middleware/templates/rescues/_request_and_response.erb (39.0ms) Rendered C:/Ruby192/lib/ruby/gems/1.9.1/gems/actionpack-3.0.3/lib/action_dispatch/middleware/templates/rescues/template_error.erb within rescues/layout (91.0ms)
耙路线:
>"update", :controller=>"reklamers"} DELETE /reklamers/:id(.:format) {:action= >"destroy", :controller=>"reklamers"} konkurrencer_index GET /konkurrencer(.:format) {:action= >"index", :controller=>"konkurrancers"} POST /konkurrencer(.:format) {:action= >"create", :controller=>"konkurrancers"} new_konkurrencer GET /konkurrencer/new(.:format) {:action= >"new", :controller=>"konkurrancers"} edit_konkurrencer GET /konkurrencer/:id/edit(.:format) {:action= >"edit", :controller=>"konkurrancers"} konkurrencer GET /konkurrencer/:id(.:format) {:action= >"show", :controller=>"konkurrancers"} PUT /konkurrencer/:id(.:format) {:action= >"update", :controller=>"konkurrancers"} DELETE /konkurrencer/:id(.:format) {:action= >"destroy", :controller=>"konkurrancers"} statistik /statistik(.:format) {:control ler=>"public", :action=>"statistik"} admin_reklamers GET /admin/reklamers(.:format) {:action= >"index", :controller=>"admin/reklamers"} POST /admin/reklamers(.:format) {:action= >"create", :controller=>"admin/reklamers"} new_admin_reklamer GET /admin/reklamers/new(.:format) {:action= >"new", :controller=>"admin/reklamers"} edit_admin_reklamer GET /admin/reklamers/:id/edit(.:format) {:action= >"edit", :controller=>"admin/reklamers"} admin_reklamer GET /admin/reklamers/:id(.:format) {:action= >"show", :controller=>"admin/reklamers"} PUT /admin/reklamers/:id(.:format) {:action= >"update", :controller=>"admin/reklamers"} DELETE /admin/reklamers/:id(.:format) {:action= >"destroy", :controller=>"admin/reklamers"} admin_kategoris GET /admin/kategoris(.:format) {:action= >"index", :controller=>"admin/kategoris"} POST /admin/kategoris(.:format) {:action= >"create", :controller=>"admin/kategoris"} new_admin_kategori GET /admin/kategoris/new(.:format) {:action= >"new", :controller=>"admin/kategoris"} edit_admin_kategori GET /admin/kategoris/:id/edit(.:format) {:action= >"edit", :controller=>"admin/kategoris"} admin_kategori GET /admin/kategoris/:id(.:format) {:action= >"show", :controller=>"admin/kategoris"} PUT /admin/kategoris/:id(.:format) {:action= >"update", :controller=>"admin/kategoris"} DELETE /admin/kategoris/:id(.:format) {:action= >"destroy", :controller=>"admin/kategoris"} admin_konkurrancers GET /admin/konkurrancers(.:format) {:action= >"index", :controller=>"admin/konkurrancers"} POST /admin/konkurrancers(.:format) {:action= >"create", :controller=>"admin/konkurrancers"} new_admin_konkurrancer GET /admin/konkurrancers/new(.:format) {:action= >"new", :controller=>"admin/konkurrancers"} edit_admin_konkurrancer GET /admin/konkurrancers/:id/edit(.:format) {:action= >"edit", :controller=>"admin/konkurrancers"} admin_konkurrancer GET /admin/konkurrancers/:id(.:format) {:action= >"show", :controller=>"admin/konkurrancers"} PUT /admin/konkurrancers/:id(.:format) {:action= >"update", :controller=>"admin/konkurrancers"} DELETE /admin/konkurrancers/:id(.:format) {:action= >"destroy", :controller=>"admin/konkurrancers"} root /(.:format) {:control ler=>"public", :action=>"index"} C:\Rails\konkurranceportalen>
您需要重构您的url助手以包含admin命名空间。 在错误的情况下,它是
<%= link_to 'Show', admin_kategori_path(kategori) %>
控制器中的重定向也是如此
#in AdminController#create redirect_to(admin_kategori_path(@kategori))
要从控制台中查看所有生成的路由助手
rake routes