Rails:如何获取/users/2/events/2009-02.html这样的URL

时间:2009-05-31 21:49:06

标签: ruby-on-rails ruby rest

对于缓存目的,我不能拥有像/ 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

1 个答案:

答案 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