我似乎無法設置自定義URL。所有的RESTful路線工作正常,但我不知道如何簡單地將/:unique_url
添加到我在模型中創建的現有路線(一個簡單的4個字符的隨機字符串),並將作爲排序的「固定鏈接」。無法在Ruby on Rails 3.1中創建自定義路由
的routes.rb
resources :treks
match ':unique_url' => 'treks#mobile'
控制器
.
.
def mobile
@trek = trek.find(params[:id])
end
這是因爲我試圖確定在現有資源的自定義操作?我可以不使用資源在同一個控制器上創建自定義方法嗎?
順便說一句,當我改變routes.rb
到match 'treks/:id/:unique_url' => treks#mobile
它工作正常,但我只是想的URL僅僅是/:unique_url
更新好像find_by_[parameter]
是要走的路...
我一直在玩的控制檯,我似乎無法得到任何方法挺身而出......我可以運行Trek.last.fullname
例如,但不能運行@trek = Trek.last
......然後打電話...例如,。任何線索爲什麼?我認爲這是我的問題。
你'mobile'方法使用'PARAMS [:編號]',但你不你的路線裏有':id'。你需要在你的模型中創建一個'find_by_unique_url'方法(如果你還沒有),並在你的'mobile'方法中使用它。 –
感謝馬克,我在哪裏創建此方法? – pruett
如果你有'unique_url'字段,那麼你已經有了。在Rails控制檯中,您可以執行'Trek.find_by_unique_url(url)',其中'url'與unique_url匹配,您將看到一個結果。 –