我有一个rails应用程序,其路线为:
resources :users do
resources :api_keys
end
现在我有控制器和模型,并且所有测试都在通过 - 但我希望有一个已登录的用户去他们的个人开发中心,所以我创建了:
resources :users do
resources :api_keys
resources :development_center
end
问题是,虽然在这里我希望用户能够从api_keys控制器访问方法,即:我希望用户能够查看(显示),创建(创建)和销毁(破坏他们的api键来自development_center控制器的show动作(和视图)。
换句话说:
development_center show方法应该呈现show视图,对于该用户,应该能够创建和查看用户创建的API的键。
我还想阻止您在浏览器中导航到site.com/users/id/api_keys/id - 相反,它应该将您重定向到该用户的develop_center show方法。
我对嵌套路线的概念不熟悉并且一直在阅读the documentation on routing但我不清楚如何:
答案 0 :(得分:2)
如果唯一的问题是您不喜欢网址中的api_keys
,那么您可以更改路由配置中的路径:
resources :users do
resources :api_keys, path: '/development_center'
end
通过这种方式,您可以继续使用ApiKeysController执行这些操作(因为您在逻辑上应该 - 因为您使用此控制器控制对API密钥的访问),但端点看起来像/users/:user_id/development_center
。