我对rake routes
输出感到困惑。举个例子(修剪过):
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"}
我一直在想:
profil_path
PUT 方法访问路线。login_path
POST 方法访问路线。结论:第一列为空(第2行和第4行)的行将跟随其上方的行。
但是,我一直在尝试向网址添加参数。所以,我在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 routes
输出(修剪):
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"}
我的问题是,为什么第3条路线看起来像是在第二条路线下?它是空的,因为Rails不知道要命名它,我必须使用get 'index/:page', :action => :index, :as => :page
来命名它吗?
那么,这意味着,第一列空白的路线并不总是遵循上述路径?
答案 0 :(得分:1)
我一直在想:
- 第2行:可以使用带有PUT方法的profil_path访问路径。
- 第4行:可以使用带POST方法的login_path访问路径。
结论:第一列为空(第2行和第4行)的行 按照上面的那个。
除结论外,一切都是正确的。 profil_path
扩展为/profil/:id(.:format)
。如果使用方法GET
调用它,它将响应您的第一条路线,如果使用方法PUT
调用它,则它会响应您的第二条路线。
但同样不适用于第二组路线。您没有/admin/pengguna/index/:page(.:format)
的任何命名助手。如果需要命名助手,则应定义路径,如:
get 'index/:page', :action => :index, :as => :what_ever_named_helper_you_want