0

在我的网站中,用户可以通过example.com/category1example.com/category2等访问类别。所以我将路由规则编写如下:

match '/:category' => 'home#category', :constraints => ShowCategory.new

ShowCategory 是一个确保用户访问的类别存在的类。同时,用户可以指定自己的个人域名,然后可以通过 url 访问他/她的个人资料页面example.com/peter。所以还有另一个路由规则:

match '/:user_domain' => 'Profiles#show'

因为我使用:constraintsfor category 路由,所以路由没有冲突。但是,在Profiles#show操作中我总是得到参数{'category' => 'peter'},而不是{'user_domain' => 'peter'}.

如何更正参数名称?我不想要category在配置文件控制器中命名的参数。

谢谢。

4

1 回答 1

0

好吧,您命名路线的方式没有多大意义。它使路由引擎感到困惑。应该是categories/1而不是category1

至于配置文件,我想第一条规则和to_param方法应该足够了。

# routes.rb
profile '/:user_domain', controller: 'profiles', action: 'show'
resources :profiles
resources :categories
# profile.rb
def to_param
    self.user_domain
end
于 2012-08-20T19:40:54.053 回答