ruby-on-rails – 了解rake路由输出
我对我的佣金路线输出感到困惑.举个例子(修剪过):
profil GET /profil/:id(.:format) {:action=>"show",:controller=>"profil"} PUT /profil/:id(.:format) {:action=>"update",:controller=>"profil"} login GET /login(.:format) {:action=>"new",:controller=>"sessions"} POST /login(.:format) {:action=>"create",:controller=>"sessions"} logout GET /logout(.:format) {:action=>"destroy",:controller=>"sessions"} 我一直以为: >第2行:可以使用带有PUT方法的profil_path访问路径. 结论:第一列为空(第2行和第4行)的行将跟随其上方的行. 但是,我一直在尝试向url添加参数.所以,我在routes.rb中添加了这些代码: namespace :admin do resources :pengguna_bulk,:only => [:new,:create] resources :pengguna do collection do get 'index/:page',:action => :index end end end 新的rake路线输出(修剪): admin_pengguna_bulk_index POST /admin/pengguna_bulk(.:format) {:action=>"create",:controller=>"admin/pengguna_bulk"} new_admin_pengguna_bulk GET /admin/pengguna_bulk/new(.:format) {:action=>"new",:controller=>"admin/pengguna_bulk"} GET /admin/pengguna/index/:page(.:format) {:action=>"index",:controller=>"admin/pengguna"} admin_pengguna_index GET /admin/pengguna(.:format) {:action=>"index",:controller=>"admin/pengguna"} POST /admin/pengguna(.:format) {:action=>"create",:controller=>"admin/pengguna"} new_admin_pengguna GET /admin/pengguna/new(.:format) {:action=>"new",:controller=>"admin/pengguna"} edit_admin_pengguna GET /admin/pengguna/:id/edit(.:format) {:action=>"edit",:controller=>"admin/pengguna"} admin_pengguna GET /admin/pengguna/:id(.:format) {:action=>"show",:controller=>"admin/pengguna"} PUT /admin/pengguna/:id(.:format) {:action=>"update",:controller=>"admin/pengguna"} DELETE /admin/pengguna/:id(.:format) {:action=>"destroy",:controller=>"admin/pengguna"} 我的问题是,为什么第三条路线看起来像是在第二条路线下?它是空的,因为Rails不知道要命名它,我必须使用get’index /:page’,:action => :index,:as => :页面命名吗? 那么,这意味着,第一列空白的路线并不总是遵循上述路径? 解决方法
除了结论之外,一切都是正确的. profil_path扩展为/profil/:id(.:format).如果用方法GET调用它,它会响应你的第一条路线,如果用方法PUT调用它,它会响应你的第二条路线. 但同样不适用于第二组路线. /admin/pengguna/index/:page(.:format)没有任何命名助手.如果你想要一个命名助手,你应该定义路线,如: get 'index/:page',:action => :index,:as => :what_ever_named_helper_you_want (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |