gpt4 book ai didi

ruby-on-rails - 在多个位置嵌套 Rails 资源

转载 作者:行者123 更新时间:2023-12-04 03:42:40 25 4
gpt4 key购买 nike

在构建 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

然后,在 Controller 中,我根据上下文稍微不同地处理事情。

这允许我在客户端提供一个相当不错的 UI,用户可以在其中查看和编辑组拥有的所有权限,或用户拥有的所有权限。有没有更好的方法来做到这一点?

最佳答案

不。您需要的上下文越多,不幸的是,它需要的复杂性就越高。如果您向应用程序添加 API,它会变得更加复杂,因为您通常需要基本的而非嵌套的资源。我发现的唯一解决方案是通过不创建最常用的路由来尝试取得平衡,然后通过让这些请求符合要求来消除其余路由。令人困惑,是的!

关于ruby-on-rails - 在多个位置嵌套 Rails 资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11866698/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com