簡體   English   中英

如何為rails controller中新創建的方法生成帶有id的路徑

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM