Ruby on Rails - 区分 REST API 中的复数资源与单数资源

2023-11-27

在开始编写任何代码之前,我正在为 REST API 构建 URL。 Rails REST 的魔力非常棒,但我对 URL 的格式有点困扰,例如:

http://myproject/projects/5

其中 Project 是我的资源,5 是project_id。我认为如果用户想要检索他们的所有项目,那么相应的 HTTP GEThttp://myproject/projects说得通。但是,如果他们希望检索有关单个资源(例如项目)的信息,那么使用http://myproject/project/5 vs http://myproject/projects/5。最好避免这种令人头疼的问题,还是你们中的一些人也有类似的担忧,甚至更好——有一个可行的解决方案?


Rails (3) 在单数与复数方面有很多约定。例如,模型类始终是单一的(Person),而相应的表总是复数(people)。 (例如,Person.all映射到select * from people.)

对于路线,存在单一资源和复数资源的概念。所以如果你这样做了resource :account那么你会得到像这样的路径/account对于默认路径或/account/edit用于编辑帐户的表单的路径。 (请注意,Rails 使用/account with a PUT实际更新帐户的方法。/account/edit是一个用于编辑帐户的表单,它是与帐户本身不同的资源。)如果您这样做了resources :people,但是,那么你会得到类似的路径/people, /people/1, and /people/1/edit。路径本身指示给定类型的资源是否只能有一个实例,或者是否可以有通过某种类型的标识符来区分的多个实例。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Ruby on Rails - 区分 REST API 中的复数资源与单数资源 的相关文章

  • 捆绑安装--无需生产有什么作用?

    我见过有人使用这个 我自己也按照指示使用它 我只是没有真正理解它的实际作用 我完全理解bundle install部分 但不是 without production一部分 它有什么作用以及我为什么要使用它 如果您的 Gemfile 中有一个
  • 如何使用 Ruby 验证 Webhook? (在轨道中)

    我正在学习如何验证Paddle https paddle com docs reference verifying webhooks 使用 Ruby 进行 webhook 他们的示例提供了如何使用 PHP Python 和 JavaScri
  • 使用设备的 Current_user 方法

    我今天刚刚开始使用 devise 我想知道是否必须在应用程序控制器中创建当前用户方法 还是已经通过 devise 创建了该方法 Devise 为您和其他人创建该辅助方法 查看 https github com heartcombo devi
  • Ubuntu 上 sqlite3-ruby 安装错误

    我在 sqlite3 ruby 安装过程中遇到以下错误 Building native extensions This could take a while ERROR Error installing sqlite3 ruby ERROR
  • 未定义的方法“stringify_keys!”轨道上的红宝石

    我有这个代码 def addcar car Car new params car render action gt list end p p 它给了我这个错误 未定义的方法 stringify keys 对于 本田 字符串 我不明白出了什么
  • 自定义收集路径的polymorphic_path

    我有以下路线定义 resources documents do collection do post filter end end 以及以下模型结构 class Document lt ActiveRecord Base belongs t
  • Rails *已完成 406 不可接受”在生产中..在暂存中工作

    我遇到了一个错误 已完成 406 不可接受 在生产服务器中 而在登台服务器中我没有面对 相同的代码在暂存中工作正常 但在生产中无法工作 两个环境都安装了相同的 gem 我使用的是 Rails 版本 3 0 10 在我的生产环境中 GET 请
  • 将局部变量向下传递 Rails 4 中的部分层次结构以实现 Ransack 关联

    我正在尝试使用 Ransack 在我的模型的所有索引页上实现搜索和排序表单 我希望尽可能地做到这一点 因此我在视图 应用程序文件夹中创建了三个部分 视图 application table search and sort form html
  • 限制 Rails 应用程序生成的出站 API 调用

    我不是专业的网络开发人员 但我喜欢把浏览网站作为一种爱好 最近 我一直在开发一个 Rails 应用程序作为一个项目来帮助我学习框架 我的玩具应用程序的目标是通过其他服务的 API 获取数据 并让我可以使用搜索功能进行查询 但是 我想要从中提
  • 这个 MiniTest::Unit::TestCase 警告是什么意思?

    我的测试运行没有问题 突然出现以下警告 MiniTest Unit TestCase is now Minitest Test 以下库中报告了这一点 ruby 1 9 3 p392 lib ruby 1 9 1 test unit test
  • Rails redirect_to 页面部分

    对于正常的重定向 它会是这样的redirect to root path 我如何重定向到类似的内容 localhost 3000 contact 我不仅想重定向到根 还想重定向到根 还想重定向到根页面的联系部分 这可能吗 这应该有效 red
  • Rspec——需要存根在另一个文件中调用的 File.open

    在我的测试中 我正在初始化一个名为的新类Package带有一些参数 在此类的初始化中 我打开一个在远程机器上可用的文件 但不是本地常见的文件 我想知道如何在测试中对该方法进行存根 我正在使用 rspec 和 mocha 我尝试过类似的东西
  • 在应用程序中注册API

    通过 django rest framework 我正在使用DefaultRouter 我想为多个应用程序提供 API 所以我的问题是我能否以 django 方式执行此操作 并将我的路由器注册放入每个应用程序 URLconf 中 并让它们显
  • TikTok Oauth - 参数错误(登录套件)

    我正在尝试使用 tiktok 登录工具包 登录我的应用程序 我在 Tiktok 中创建了一个基于网络的应用程序 提供了正确的重定向域 应用程序正在 生产中 我能够重定向到titok com但是当我单击授权选项时 出现以下错误 data de
  • 大虾如何生成目录?

    有没有一种简单的方法来生成带有相应页面链接的目录 在最近版本的虾中 是的 查看 API 示例的 Examples general outlines rb 示例 See http prawnpdf org manual pdf http pr
  • Rails 3 在迁移问题中添加外键

    有谁知道使用迁移在 Rails 3 中创建外键的方法吗 the 外国人宝石 https github com matthuhiggins foreigner对我来说效果很好 它向 Rails 迁移添加了一些方法 可以轻松创建和删除外键 ex
  • Rails sunspot-solr - 带连字符的单词

    我正在使用 sunspot rails gem 到目前为止一切都很完美 但是 我没有得到带有连字符的单词的任何搜索结果 例子 字符串 tron 返回很多结果 所有文章中提到的词都是e tron 字符串 e tron 返回 0 个结果 即使这
  • 如何在 Rails 3 中强制对 HTML 电子邮件进行字符编码?

    我正在使用 Rails 3 1 3 1 1 RC1 并且我已配置 ActionMailer 以使用windows 1252作为默认编码 外部要求 这与纯文本邮件完美配合 但一旦我发送 HTML 邮件 文本就会转换为UTF 8再次导致乱码文本
  • Ruby Shoes 打包程序,包括应用程序中的 Shoes

    我似乎无法让 Ruby Shoes 打包程序正确创建包含 Shoes 的 exe 我正在使用 Raisins 版本 0 r1134 并从 github 替换 pack rb 打包程序制作的 exe 都是 70 80K 文件 它们显然不包括
  • 设计在 XHR 上抛出 HTTP 身份验证并注销

    我在使用 Devise 使用 OmniAuth 来验证我的 Rails 应用程序时遇到很多问题 我重新启动我的服务器并在隐身模式下打开一个新选项卡 以便清除 cookie 并加载我的应用程序 我登录 然后进入该应用程序 当我到达通过 AJA

随机推荐