我有iOS应用程序对抗Rails应用程序。让我们说我有TeamMember模型,在iOS应用程序中,我需要使用单个请求创建/更新多个团队成员(以事务方式 - 如果出现问题,所有应该保存或完全失败)。
示例:发送POST / team_members与body:
是否可以[
{
"name": "Tom"
},
{
"name": "Derek"
}
...
]
令我困惑的是,我的理论JSON示例包含数组而不是单记录哈希,这在发布POST / team_member的单个团队成员记录时很常见。 PUT / team_members请求也是如此。
我会非常感谢能够向我解释如何以可靠的方式完成此任务的任何人?
答案 0 :(得分:0)
我认为这应该是可能的,但您的服务合同必须根据数组进行定义。
您的服务将确定它是否有效,并应将其作为交易处理。
答案 1 :(得分:0)
的routes.rb
resources :team_member_batches
控制器
class TeamMemberBatchesController < ApplicationController
def create
t = TeamMemberBatch.new(team_member_attributes: JSON.parse(params[:team_member_attributes]))
if t.save
# All good
else
# Something went wrong...
end
end
end
模型(确实不是模型,但确定)
class TeamMemberBatch
attr_accessor :team_members
def initialize(atts)
self.team_members = []
atts.each do |team_member_attributes|
self.team_members << TeamMember.new(team_member_attributes)
end
end
def save
unless team_members.all.map(&:valid?).uniq.include?(false)
team_members.all.map(&:save)
true
end
false
end
end