2013-06-04 50 views
8

有任何插入到路由幫助器調用的方法嗎?Rails Route Helper插值

我有一個局部在其中傳遞資源(用戶,畫廊等)作爲本地調用resource。我需要一個鏈接編輯資源,但我需要的鏈接是爲每個資源不同:

對於鏈接需要使用輔助edit_user_path一個用戶,畫廊它需要使用edit_gallery_path

所以,我需要一種方法來資源名稱插值到幫助(僞代碼): edit_{resource.name}_path

+0

如果你使用的是繼承資源,你可以使用url helper'edit_resource_path(resource)'(https://github.com/josevalim/inherited_resources#url-helpers) – MrYoshiji

+0

@MrYoshiji看起來Gem的所有者已經棄用它了。 – Undistraction

+0

Arf,這個寶石帶來了如此多的黑魔法和令人困惑的東西,現在他們棄用方法而不更新他們的文檔! – MrYoshiji

回答

18

您可以send("edit_user_path")取代edit_user_path。已在控制檯中驗證。

現在你可以在裏面插入字符串了。

+4

做得很好。只需稍微擴展一下你的答案:'send(「edit _#{resource.class.to_s.underscore()} _ path」,resource)'。 – Undistraction

+0

我需要在視圖中這樣做,所以我得到一個'未定義的方法錯誤'。你知道什麼課程發送?在控制檯中,我執行'app.send..' – cortex

+0

@cortex,這應該能夠像OP一樣在視圖中工作。也沒有類,因爲命名路徑屬於Rails應用程序實例。如果你仍然有問題,你可以發佈一個新的問題與細節。 –