2013-08-28 29 views
0

一個問題上SO的網址結構:獲取相同URL結構如對堆棧溢出

http://stackoverflow.com/questions/18474799/changing-the-input-value-in-html5-datalist

如果我們假定數部分是ID,所述第一兩個部分(域擴展之後)通過簡單地利用已經被它的ID標識在routes.rb中

resources :questions

以下問題得到,那麼我們如何添加在最簡單的方式(可選的)裝飾塞?我們是否需要使用新的鏈接幫助器(並且包含附加的參數),還是可以在其他地方解決3部分的url?

更新:

更多地關注這個問題上的路由處理,讓我們假定已經有作爲一個屬性,例如保存的對象(在創建時)蛞蝓@question.slug

如果routes.rb或/和控制器中的規則可以啓用並處理可選的slug,而不必在所有視圖中編寫長鏈接助手,那真的是一個優勢。

回答

0

如果你只是想處理以這種方式的GET請求,這很容易做到:

get '/questions/:id/:title' => 'questions#show', as: :question_with_title 
resources :questions 

這種方式可以處理傳入的網址,有或無標題(就像StackOverflow上能 - 試試吧!)。在http://guides.rubyonrails.org/routing.html#static-segments

0

question_with_title_path(@question.id, @question.title.to_s.downcase.gsub(/ /, '-') 
# probably will want to use a method for processing titles into url-friendly format 

更多您可能能夠使用to_param方法來創建一個「友好號」:你可以像動態創建的URL。

事情是這樣的:在這個gist

1
resources :questions do 
    member: title 
end 

團狀使用friendly_id

class Question < ActiveRecord::Base 
    def to_param 
    [id, name.parameterize].join("/") 
    end 
end 

更多信息和是別忘了看看Rails Routing