2016-03-02 33 views
1

我在我的網站上使用Friendly_ID作爲slu and,它正在工作......有點。我可以正確訪問路由,但是當我按照指向該頁面的鏈接時,它仍然顯示該ID。例如,我有一個鏈接,顯示以下內容:Rails 4+ Friendly_id:網址沒有顯示slu 012

<%= link_to "X", location_path(@location, :id => "1") 

其中顯示的URL爲localhost:3000/locations/1所以我改變了鏈接:

​​

,顯示正常(localhost:3000/locations/X),但是當你看在導航到其頁面後,該鏈接的href將顯示爲<a ... href="/locations/X.X">...</a>

爲什麼鏈接顯示X.X而不是簡單X

回答

1

你不需要通過idlocation_path。它將從@location中挑選出來。從location_path丟掉id,它應該解決這個問題。

+0

當我這樣做時出現以下錯誤:'沒有路由匹配{:action =>「show」,:controller =>「locations」,:id => nil}缺少所需的鍵:[:id]'。我在主頁上有這個鏈接,有多個位置,所以'@ location'不知道要鏈接到哪個位置 –

+0

你如何設置'@ location'的值。如果您添加您的控制器代碼,它將有助於進一步審查。 – Dharam

+0

我最終在控制器中通過爲每個位置聲明一個不同的變量並在路徑中調用它來糾正它 –