2011-12-11 71 views
0

如何更改控制器中視圖的URL。
在我的控制器中,我生成一個ID,我想在呈現視圖時在瀏覽器的URL中顯示
Rails 3.1更改控制器中的URL

例如,當我在瀏覽器中輸入/時,它應該將我的
重定向到/ test/1。該ID由控制器隨機生成。
所以當我訪問/第二次它可以重定向我到/測試/ 3。

我試圖在我的routes.rb文件中做匹配路線。
但我找不到解決方案。

的routes.rb

get 'test/run' 
root to: 'test#run' 

match '/test/:id', to: 'test#run' 

回答

2

怎麼樣:

class TestController 
    def show 
    ... 
    end 

    def run 
    redirect_to Test.random 
    end 
end 

當然,你必須寫random範圍爲測試模型。 您可能也有興趣這個問題 - Random record in ActiveRecord

P.S.我不確定Test是否適合您的模型。它可能已被紅寶石或導軌使用。

+0

我沒有測試模型。測試只是一個調用另一個模型的控制器。但你的回答幫助我改進了我的設計。有沒有辦法改變控制器內的網址? – bekite

+0

推送狀態是可能的 - https://developer.mozilla.org/en/DOM/Manipulating_the_browser_history。儘管舊版瀏覽器不支持它。看看github倉庫查看器是如何工作的。 – cutalion

+0

謝謝。但我需要一種方法來做到這一點,而不使用Java腳本。 – bekite