对于缓存目的,我不能拥有像/ users / 2 / index?month = 2009-02这样的网址。这种方法的问题是,如果我进行页面缓存,那么即使/ users / 2 / index?month = 2009-03也会返回相同的页面。
要解决缓存问题,我想拥有像/users/2/events/2009-02.html这样的网址。我已经将用户定义为一个宁静的资源。
map.resources:users
是否有人知道如何获取将要映射到
的/users/2/events/2009-02.html的网址controller = users 行动=事件 id = 2或user_id = 2 月= 2009-02
答案 0 :(得分:9)
在应用程序的路径文件中,您可以设置如下命名路线:
map.user_events '/users/:user_id/events/:month.html',
:controller => :users, :action => :events,
:requirements => {:month => /[0-9]{4}-[0-9]{2}/}
路由DSL在Rails 3中发生了很大变化。现在你会做更多这样的事情:
get '/users/:user_id/events/:month.html' => 'users#events',
:constraints => {:month => /[0-9]{4}-[0-9]{2}/}
这里有关于路由的更多信息:http://guides.rubyonrails.org/routing.html