2013-06-27 101 views
0

我有些路線是這樣的:Ruby on Rails的:設置導軌和路線:路徑

resources :users do 
    member do 
    get 'services', :path => 'services/edit', :defaults => { :servicable => 'user' } 
    end 
end 

這讓我有localhost:3000/users/1/services/edit

我試圖動態路徑添加到它。

我嘗試添加:as => :edit_services_path

get 'services', :path => 'services/edit', :defaults => { :servicable => 'user' }, :as => :edit_services_path 

,所以我可以嘗試這樣的事情:

<%= link_to "Edit", edit_services_path %> 

但它給我的錯誤。

undefined local variable or method `edit_services_path' for #<#<Class:0x007f856fd5a970>:0x007f856ff18690> 

我試圖尋找你指定,如果我自定義我的道路,但還沒有任何運氣添加新路徑的正確方法,

感謝

回答

1

使用方法不產生一個動態路徑,而不是你正在嘗試使用的路徑。它產生:

services_user GET /users/:id/services/edit(.:format)    users#services {:servicable=>"user"} 

並添加:as選項創建:

edit_services_path_user GET /users/:id/services/edit(.:format)    users#services {:servicable=>"user"} 

這是一個有點混亂,因爲通常path未在指定的路徑,但作爲路由本身上的幫手(即services_user路徑將是services_user_pathpath helper),所以如果命名的事宜中有很多對你這個可以巧妙,但它產生的動態路徑,你可以使用rake routes爲你改變的事情,以及查看這些。

+0

天上的感謝!是的,我是用'耙routes'但我找不到'services_user',直到你說,我一直在尋找它,謝謝! – hellomello