2011-04-28 264 views
2

如何根據...天氣或當前時間或其他情況使用動態根路由?動態根路徑路徑

我想到了兩種方法:ApplicationController級別和Rack重定向。

  • 第一個解決方案,我將檢查我的動態狀態並重定向到特定頁面。
  • 第二種解決方案是多一點本地儘可能使用途徑水平

例如

root :to => proc { |env| [ 302, {'Location'=> some_code }, [] ] } 

但我希望看到的是我如何使用簡單的λ爲路由選項,如:

root :to => "mycontroller#myaction", :some_param => proc{ DateTime.now.hour } 

它不工作,但它表明我的意料

回答

1

,我不知道爲什麼你需要初始化在路由表中的參數時,同樣的事情也可能在控制器來完成:

params[:some_param] = DateTime.now.hour 

您也可以在控制器內部重定向的要求,而不是使用redirect_to方法嚴重依賴路由表。

+0

其實這是我現在運行的方式:在控制器中重定向。但它也改變了瀏覽器中的URL,它看起來不像本地的東西。我只想告訴Rails的路線:這條路線是晚上的根,這是早上的時間:)。 – fl00r 2011-04-28 16:50:09

+0

您可以有一個控制器方法,根據一天的時間調用兩種不同的操作之一。這會容易很多。 – tadman 2011-04-28 21:41:22