4
在构建Rails应用程序时,我最近遇到了一种情况,我希望可以在多个其他资源的上下文中访问资源,并根据上下文采取稍微不同的行为。处理这样的事情的最佳方式是什么?目前,我通过将资源嵌套到多个父资源中来处理这个问题。然而,这已经变得有些麻烦了,我想知道是否有更好的方法来做到这一点。在多个位置嵌套导轨资源
例子:
说我有一个UserRights模式,我希望用户能够查看,创建和在任何单个用户或整个的情况下编辑这些权利用户的组:
resources :users do
resources :user_rights, context: :user # params[:context] = :user
end
resources :groups do
resources :user_rights, context: :group
end
这将生成路线:
users/:user_id/user_rights/:id
groups/:group_id/user_rights/:id
然后,在控制器中,我根据上下文处理事情稍有不同。
这使我可以在客户端提供一个相当不错的用户界面,用户可以在其中查看和编辑组拥有的所有权限或用户拥有的所有权限。有没有更好的方法来做到这一点?
啊,好的。我想我只是希望在那里有一些最佳实践来处理拥有多个父项的嵌套资源。我想我只需要尽量保持我的代码尽可能干净...... – Ajedi32 2012-08-08 20:40:13
您可以以任何您想要的方式嵌套 - 没有任何限制或处罚(除了创建它们的时间之外) 。所以如果它的逻辑性和对程序员/用户的清晰度有帮助,那就去做吧。我的答案可能更多地受到我用API处理嵌套资源时看到的复杂性的驱动,其中额外代码要求的处罚很高。 – 2012-08-08 20:47:39