2011-04-28 271 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