的Rails 3路由

问题描述:

我有一个community_users模型,我以下列方式路线:的Rails 3路由

resources :communities do 
    resources :users 
end 

这将创建路线/communities/:id/users/

我想配置此路由,以便只显示具有相应:id的社区名称。

换句话说,如果一个社区有 '1' 的ID和名称为 '轨道爱好者' - 的路线将是:

/rails-lovers 

,而不是:

/communities/1/users/ 

你可能想看看宝石friendly_id

这会给你你正在寻找干净的URL。

我不十分肯定,如果这是你在找什么,但:

一种选择是创建路线

match ':community_name' => 'users#show_users_for_community' 

然后在UsersController有

def show_users_for_community 
    @community = Community.find_by_name(params[:community_name]) 
    <do what you need to do here> 
end 

我不知道如果路由将匹配了过多的网址或不 - 这是一个非常普遍的路线。所以如果你这样做,也许把它放在你的路线文件中。