问题标签 [nested-resources]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
rest - REST 复杂/复合/嵌套资源
我正试图围绕在基于 REST 的 API 中解决概念的最佳方式展开思考。不包含其他资源的平面资源没有问题。我遇到麻烦的是复杂的资源。
例如,我有一本漫画书的资源。ComicBook
具有各种属性,例如author
, issue number
,date
等。
漫画书也有1..n
封面列表。这些封面是复杂的对象。它们包含很多关于封面的信息:艺术家、日期,甚至是封面的 base 64 编码图像。
对于一个我可以只返回漫画,所有的封面,包括他们的base64'ed图像GET
。ComicBook
对于获得一部漫画来说,这可能没什么大不了的。但是假设我正在构建一个客户端应用程序,它想在表格中列出系统中的所有漫画。
该表将包含ComicBook
资源中的一些属性,但我们当然不希望显示表中的所有封面。返回 1000 本漫画书,每本漫画书都有多个封面,这将导致大量数据通过网络传输,在这种情况下,这些数据对于最终用户来说是不必要的。
我的直觉是制作Cover
资源并ComicBook
包含封面。所以现在Cover
是一个URI。GET
现在,在漫画书作品上,Cover
我们为每个封面发送回一个 URI,而不是巨大的资源,客户可以根据需要检索封面资源。
现在我在创作新漫画时遇到了问题。当我创建一个 时,我肯定会想要创建至少一个封面Comic
,事实上这可能是一个业务规则。
所以现在我被困住了,我要么通过首先提交 a Cover
,获取该封面的 URI,然后POST
在ComicBook
列表中使用该 URI 来强制客户端执行业务规则,要么我POST
的 onComicBook
接受与它吐出的不同的资源出去。POST
和的传入资源GET
是深层副本,其中传出GET
s 包含对依赖资源的引用。
该Cover
资源在任何情况下都可能是必需的,因为我确信作为客户,我想在某些情况下解决方向。因此,无论依赖资源的大小如何,问题都以一般形式存在。一般来说,您如何处理复杂资源而不强迫客户“知道”这些资源是如何组成的?
ruby-on-rails - 不能像我期望的那样加载嵌套资源
当用户登录时,Cancan 工作正常。但是当用户是“客人”时,我希望他们能够看到一些照片,而不是那些照片的父帖子employees_only
设置了限制标志的照片。
问题是如果数组中有任何与employee_only
帖子相关的照片,@photos
那么 Cancan 会抛出CanCan::AccessDenied in PhotosController#index
. 但是load_and_authorize_resource :photo, :through => :event
控制器中不应该删除那些未经授权的记录@photos
吗?
能力.rb
事件.rb:
post.rb
照片控制器:
user.rb # 不确定这是解决此问题的必要条件,但 JIC:
ruby-on-rails - 通过连接表使用嵌套资源的 RESTful form_for
我正在尝试构建一个应用程序,其中有一个“工作”模型,该模型可以与使用连接表跟踪关联的“标签”模型相关联。我想发现可以使用基于资源的 form_for 在表单中添加复选框,以允许用户选择与作业关联的标签。标签列表由管理员设置,因此他们不会创建新标签,而是创建关联。我不知道该怎么做。大多数示例使用一个博客场景,其中一篇文章有很多评论,他们正在创建新评论,这与我正在尝试做的非常不同。
楷模:
加入表迁移:
路线:
再培训局:
这甚至可以通过基于资源的 form_for 实现吗?我还没有找到任何涉及这种资源关系的例子。
ruby-on-rails - Rails 嵌套资源在另一个上下文中可用
我计划拥有带有嵌套图像的画廊,因此图像属于画廊。然后,我希望图像具有布尔选项来确定特定图像是否显示在首页上。使用布尔属性设置嵌套资源很简单,但我还没有弄清楚如何访问所有将该属性设置为 true 的图像。
遍历每个画廊和图像是唯一的方法吗?在我看来,必须有更好的方法......
ruby-on-rails - Rails 3 - 在控制器中处理嵌套资源查询的最佳方式?
如果我从 Rails 3 学到的一件事是,如果我在做某事时遇到困难,那我可能做错了。所以我正在寻求帮助。
我有一些模型在多对多关系中相关。
我能够毫无问题地在模型中创建关联。我的问题在于如何构建控制器来处理这些关系。如果您看不到我的目标,我会尝试举个例子。
例如...
假设我有上述模型。这将是我的资源...
所以只是为了缩短一点,假设我想要一个帐户所有位置的列表。上述路线大概是 account/1/locations。因此将我降落在位置#index。
希望我在这一点上没有搞砸我的示例,但是构建此操作的最佳方法是什么,因为它确实有多个工作......至少是帐户、联系人和所有位置的位置。
所以我最终得到了这样的东西......
更新#1:澄清一下,因为我得到了一些建议我改变我的模型关系的答案。我正在使用一个遗留系统,此时我无法更改关系。清理数据库和关系最终是我的目标,但现在我做不到。所以我需要找到一个适用于这种配置的解决方案。
ruby-on-rails - 使用 RSpec 测试嵌套资源
我正在尝试为 Rails 中的嵌套资源创建测试。相关路由定义为:
使用 RSpec 和 factory_girl,我正在尝试使用例如测试开始
这些请求总是导致
对于我的一生,我找不到使用 RSpec 指定到嵌套资源的路由的方法。我在这里做一些根本错误的事情吗?
更新: rake 路线的相关部分是:
ruby-on-rails - Rails 3嵌套资源路由继承父约束,如何避免?
如果您在父资源中定义“id”约束:
嵌套资源将为其自己的 id 继承该约束,因此生成的路由将如下所示:
所以,我不希望 Bar 资源的“id”参数受到限制。
目前,我只是手动一一映射我想要的路线,但我真的很想通过资源助手生成它。我怎样才能做到这一点?
sql - 嵌套资源中的 Rails 3 SQL 查询
假设我在 Rails 应用程序中有一系列嵌套资源(Magazine
、Edition
和Ad
),因此杂志有很多版本,随后会有很多广告。
如何进行查询以在给定杂志的所有版本中制作所有广告,然后按创建日期对它们进行排序?
理想情况下,我想使用单个 SQL 查询生成一个包含所有结果的数组,而不是为每个版本进行查询然后组合后续数组。
ruby-on-rails-3 - Rails3中的嵌套资源,没有路由匹配
我在rails 3中有一条嵌套路线,映射为
但是当我尝试连接到http://localhost:3000/maps/35/versions/2我得到
没有路线匹配“/maps/35/versions/2”
并且在 rake 路由 GET /maps/:map_id/versions/:id(.:format) {:controller=>"versions", :action=>"show"} 或类似(带有 :id)中缺少其他带有版本的路由正常工作
怎么了?
编辑 2:这是完整的 rake 路由输出
ruby-on-rails - 具有嵌套资源的 form_for 不提交后请求
第一:我保证我已经阅读了关于这个主题的每一篇文章,搜索了整个网络,但仍然不知道......
我必须为 Trip (has_many) 和 Accomodation (belongs_to) 建模。住宿嵌套在旅行中:
控制器看起来像这样:
表格:
该表单呈现正确的html(据我所知):
好的,所以当我提交表单时,什么也没有发生。当我查看服务器日志时,我可以看到呈现新表单的获取请求。但是对提交没有反应......表单根本没有提交吗?为什么?我完全不知道。
我还尝试了什么?
没有什么。
也没什么。
忘了它。
任何人都可以帮忙。我可以开始挖掘的任何线索?
提前致谢!