Rails 3:将/ users / username / something替换为/ username / something

时间:2011-01-09 10:55:42

标签: ruby-on-rails routing ruby-on-rails-3

我已经为用户显示页面提供了匹配/username的路由。但是,当我添加其他操作时,例如:关注者并按照以下方式执行操作:

 resources :users, :only => [:show] do
    get :following, :followers
  end

我获取了网址/users/username/following而不是/username/following

如何将所有/users/username网址匹配为/username/etc ..?

这是我的/username路线:

match '/:id' => 'users#show', :constraints => { :id => /[a-zA-Z0-9\-_]*/ }, :as => "user_profile"
谢谢。

修改

我已经通过添加

解决了这个问题
match '/:id/following' => 'users#show/following', :as => "user_following"
match '/:id/followed' => 'users#show/following', :as => "user_followers"

但我不确定这是否是最佳解决方案。我真正想要的是一个默认路线,它将所有/:id/:action与省略/users的相应操作相匹配。

2 个答案:

答案 0 :(得分:0)

我已经通过添加

解决了这个问题
match '/:id/following' => 'users#show/following', :as => "user_following"
match '/:id/followed' => 'users#show/following', :as => "user_followers"

但我不确定这是否是最佳解决方案。我真正想要的是一个默认路由,它将所有/:id /:action与省略/ users的相应操作相匹配。

答案 1 :(得分:0)

靠近底部

match ':id/:action', :controller => :users