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

Nee*_*ngh 1 ruby rest ruby-on-rails

出于缓存目的,我不能像/ users/2/index?month = 2009-02这样的网址.这种方法的问题是,如果我进行页面缓存,那么即使是/ users/2/index?month = 2009-03,也会返回相同的页面.

要解决缓存问题,我想提供像/users/2/events/2009-02.html这样的网址.我已经将用户定义为一个宁静的资源.

map.resources:用户

有谁知道如何获取将要映射到的/users/2/events/2009-02.html的URL

controller = users action = events id = 2或user_id = 2 month = 2009-02

geo*_*ock 9

在应用程序的路径文件中,您可以设置如下命名路径:

map.user_events '/users/:user_id/events/:month.html',
                :controller => :users, :action => :events,
                :requirements => {:month => /[0-9]{4}-[0-9]{2}/}
Run Code Online (Sandbox Code Playgroud)

路由DSL在Rails 3中发生了很大的变化.现在你会做更多这样的事情:

get '/users/:user_id/events/:month.html' => 'users#events',
    :constraints => {:month => /[0-9]{4}-[0-9]{2}/}
Run Code Online (Sandbox Code Playgroud)

有关路由的更多信息,请访问:http://guides.rubyonrails.org/routing.html