2013-06-20 36 views
1

我想重定向http://mysite.com/docs/some-old-linkhttp://mysite.com/docs/some - 新鏈接(一些舊鏈接消失了)。這是我想要的:如何在Rails 3中重定向routes.rb中的嵌套資源

resources :docs, :only => [:index, :show] do 
    member do 
    match "some-old-link" => redirect("some-new-link") 
    end 
end 

但重定向沒有發生,我只是得到404的一些舊鏈接。嘗試了各種調整,但不能得到它。我該怎麼做呢?

+0

你試圖打印到控制檯右側的'成員do'上面,然後用鼠標右鍵上面的'比賽「一些老鏈接「=>重定向(」一些新鏈接「),以確保它被調用? – Max

+0

如何匹配「docs/some-old-link」=>重定向(「docs/some-new-link」) – usha

+0

@Max OK剛剛嘗試過,並且都在rails啓動期間打印,而不是在請求發出時我猜測routes.rb只能在啓動時運行一次來​​初始化路由)。 – wildabeast

回答

4

首先,嘗試添加 「到」 你的代碼:

match "some-old-link", to: redirect("some-new-link") 

的問題也可能是:

member do 
    match "some-old-link" => redirect("some-new-link") 
    end 

預計重定向某事像這樣:

/docs/id/some-old-link to /docs/id /一些新鏈接

嘗試使用收集而不是成員

+0

謝謝!使用集合而不是成員 - 這給我錯誤:'錯誤URI :: InvalidURIError:方案http不接受註冊表部分:localhost:3000some-new-link'。然而'重定向(「/ docs/some-new-link」)'訣竅。 – wildabeast