有任何插入到路由幫助器調用的方法嗎?Rails Route Helper插值
我有一個局部在其中傳遞資源(用戶,畫廊等)作爲本地調用resource
。我需要一個鏈接編輯資源,但我需要的鏈接是爲每個資源不同:
對於鏈接需要使用輔助edit_user_path
一個用戶,畫廊它需要使用edit_gallery_path
等
所以,我需要一種方法來資源名稱插值到幫助(僞代碼): edit_{resource.name}_path
有任何插入到路由幫助器調用的方法嗎?Rails Route Helper插值
我有一個局部在其中傳遞資源(用戶,畫廊等)作爲本地調用resource
。我需要一個鏈接編輯資源,但我需要的鏈接是爲每個資源不同:
對於鏈接需要使用輔助edit_user_path
一個用戶,畫廊它需要使用edit_gallery_path
等
所以,我需要一種方法來資源名稱插值到幫助(僞代碼): edit_{resource.name}_path
您可以send("edit_user_path")
取代edit_user_path
。已在控制檯中驗證。
現在你可以在裏面插入字符串了。
做得很好。只需稍微擴展一下你的答案:'send(「edit _#{resource.class.to_s.underscore()} _ path」,resource)'。 – Undistraction
我需要在視圖中這樣做,所以我得到一個'未定義的方法錯誤'。你知道什麼課程發送?在控制檯中,我執行'app.send..' – cortex
@cortex,這應該能夠像OP一樣在視圖中工作。也沒有類,因爲命名路徑屬於Rails應用程序實例。如果你仍然有問題,你可以發佈一個新的問題與細節。 –
如果你使用的是繼承資源,你可以使用url helper'edit_resource_path(resource)'(https://github.com/josevalim/inherited_resources#url-helpers) – MrYoshiji
@MrYoshiji看起來Gem的所有者已經棄用它了。 – Undistraction
Arf,這個寶石帶來了如此多的黑魔法和令人困惑的東西,現在他們棄用方法而不更新他們的文檔! – MrYoshiji