3

我已经有了这样的东西:

resources :users, :path => '', :path_names => { :edit => 'settings' } do
  resources :photos
end

这给了我很多我真正想要的路线。

/{user_id}/settings #does everything "edit" did
/{user_id}/photos #lists photos for certain user

但我在路由愿望清单上的最后一个条目是以资源丰富且 RESTful 的方式带回“用户”作为我的索引路径。因为现在,索引丢失到优先的根 URl。所以本质上,我不想:path => ''应用于索引操作。我试过添加:except => [:index],但 ActiveRecord 仍然尝试匹配/users/为“用户”的 id。(这是字母数字,所以约束在这里没有帮助。)

接下来我应该尝试什么?还是我应该认真地写下个人的“匹配”声明?我觉得应该有一种方法可以从资源中构建它......

4

1 回答 1

4

我最终做的只是写了第二条路由规则(我想多了)。因为我已经root在我的路由中定义了,'/' 已经被 index、new 和 create 覆盖了。

因此,只需为单独的行重写规则,实际上就很容易了。

resources :users, :path => '/users', :only => [:index, :new, :create]
resources :users, :path => '', :path_names => { :edit => 'settings' } do
    resources :photos
end
于 2012-05-30T02:31:34.927 回答