0

我在我的应用程序(rails 3.2)中使用嵌套路由,如下所示:

resources :networks do
  resources :groups
end

群组展示页面路径如下

network_group GET    /networks/:network_id/groups/:id(.:format)

如何将参数分别更改为 :network_name 和 :group_name ?另外,我想将路由重命名为 group_path (而不是 network_group_path )。我希望这些更改反映在所有路线上,而不必对各个路线使用“匹配”。

是否有可能有类似 group_path(@network, @group) return '/networks/global/groups/all' 的东西,其中 'global' 和 'all' 都是各自模型的 'name' 属性。(默认情况下,我在 url 中获取 id)

4

2 回答 2

0

我们可以通过在我们的模型中添加一个 to_param 方法来做到这一点

http://railscasts.com/episodes/63-model-name-in-url

在您的网络和组模型中,添加一个 #to_param 方法,该方法在 URL(network_name、group_name)中返回您想要的内容。

否则,您可以使用提供漂亮 url 的friendly_id gem。

于 2012-08-09T10:41:15.220 回答
0

您可以使用friendly_id gem。https://github.com/norman/friendly_id

于 2012-08-09T20:08:18.477 回答