【发布时间】:2014-06-24 16:36:55
【问题描述】:
Rails 具有基本的 REST 操作创建/更新/显示/销毁,但如果我想要创建或更新现有记录的操作,我应该为此创建自定义操作吗?
我知道 rails 有 first_or_initialize,但它似乎不适合创建或更新的定义。
据我了解,create 应该创建新记录而不更新现有记录,update 应该更新而不创建新记录。
这是一个例子:
我有模型 Blog、Tag 和一个连接表 Blog_Tags,它引用了 blog_id、tag_id 和一个 user_id 来记录谁向这篇博文推荐了这个标签。
[Blog]>-[Blog_Tag]-<[Tag]
|
[User]
我的想法
我正在考虑这个例子的新动作PUTcreate_or_update,路线是,我有路线blog/[blog_id]/tag/[tag_id_to_add]/create_or_update。不知道这样对不对。
【问题讨论】:
-
没有。不要尝试添加您自己的方法。不要为了避免多次请求而做奇怪的事情。此外, PUT 可能是您想要的。它将在给定的 URI 上创建资源,或更新(替换)该 URI 上的现有资源。
标签: ruby-on-rails rest crud