[英]How to generate a path with id for a newly created method in rails controller
我正在向現有的基於 REST 的用戶 controller 添加新方法“editpass”。
我想將 id 傳遞給 edit 為 edit_user_path 所做的 editpass 方法
我在 routes.rb 中添加了以下內容
resources :user do
collection do
get 'editpass'
end
end
和
match 'user/:id/editpass' => 'user#editpass'
rake:routes 為 editpass 生成以下內容:
/user/:id/editpass(.:format) {:action=>"editpass", :controller=>"user"
這條路線沒有路徑名。
在rails3中為帶有id的方法生成路徑的最佳方法是什么
提前致謝
森陵
首先,如果您users
resources
而不是resource
,則應該將user
多元化以更傳統
resources :users do
collection do
get :editpass
end
end
然后你可以使用:
link_to "Edit Pass", [:editpass, :users]
或者
link_to "Edit Pass", editpass_users_path
還使用match 'user/:id/editpass' => 'user#editpass'
會弄亂您的路線,這是絕對愚蠢的想法,因為您的 match 實際上是member
,而您已將其添加為collection
match 'user/:id/editpass' => 'user#editpass', :as => 'user_editpass'
這應該使 user_editpass_path(:id => @user) 工作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.