gpt4 book ai didi

ruby-on-rails - 您如何在 RESTful 设计中处理资源上的 'actions',例如将电子邮件标记为已读?

转载 作者:行者123 更新时间:2023-12-01 13:09:08 25 4
gpt4 key购买 nike

您将如何在 RESTful 设计中集成此类内容?

  • 将电子邮件标记为已读
  • 对故事进行投票
  • 举报不当消息

此外,您将如何以这样一种方式做到这一点,即可以制作一个小图标链接或按钮来执行操作而无需太多魔法?

最佳答案

这取决于你在做什么。有时,只需将您的观点从“对资源执行操作”转变为“创建另一个不同但相关的资源”。

对故事进行投票很容易:您可以创建、审查等的投票资源。与报告相同。这可以应用于任何事物,而不是将订单标记为已提交,而是会有一个提交等。关键是弄清楚如何将动词转换为名词。

将电子邮件标记为已读有点不同。为此我要做的是使用虚拟属性:在模型上创建自己的 setter 方法(例如 mark_as_read=)将允许您在 #Update 操作中通过 params 数组传递 mark_as_read。

以对故事进行投票为例。您要做的是创建一个属于故事的投票模型。创建一个 Votes Controller ,并将其嵌套在路由文件中的 Stories Controller 之外。然后,您可以使用嵌套资源路由(传入故事记录)轻松创建针对单个故事的投票。

请注意,资源不一定必须由数据库模型支持,尽管它是适当的形式。在这种情况下,您总是可以简单地修改 Story 记录,同时保持 RESTfulness 和在需要时轻松扩展到完整模型的能力。

关于ruby-on-rails - 您如何在 RESTful 设计中处理资源上的 'actions',例如将电子邮件标记为已读?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/485318/

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