gpt4 book ai didi

ruby-on-rails - 如何在 Rails 3 中更新表格中的多个条目

转载 作者:太空宇宙 更新时间:2023-11-03 18:23:20 26 4
gpt4 key购买 nike

我有一个 Rails 应用程序试图在用户表中一次更新多个用户。我尝试提供多个用 ',' 分隔的 ID,但失败并出现“无路由匹配”之类的错误,我创建了一个自定义方法“assign”,路由指定为 ,

"assign/:id" => "users#assign" , :via => [:put] 

我正在尝试通过 POSTMAN REST 客户端进行更新。

我的 PUT 请求,

http://localhost:3000/assign/6,7,8    ---   PUT

数据:

{
"users":[
{
"trainerid":4
},
{
"trainerid":5
},
{
"trainerid":6
}
]
}

穆 Controller

def assign
@ids = params[:id].split(",")
@users = params[:users]
@ids.each_with_index do |i|
@user = User.find(i)
@user.updateattributes(@users[index])
end
render :json => { :status => :ok, :message => "User Updated Successfully"}.to_json
end

我在这里尝试用 id: 4 ,5 ,6 更新用户表中的 trainerid

是否可以通过其他方式更新。

感谢任何帮助......

最佳答案

为什么要把 ID 放在 URL 中?拆分字符串感觉不对。为什么不只是有一个更简单的路线,只是给用户/分配?然后在您的 JSON 中,您可以拥有:

{ "users":[
{ "id":6, "trainer_id":4 },
{ "id":7, "trainer_id":5 },
{ "id":8, "trainer_id":6 }
]}

然后这样处理:

def assign
params[:users].each do |hash|
User.find(hash['id']).update_attributes hash
end
end

显然它需要错误处理等,但这是基本方法。注意 update_attributes will only update those attributes flagged as attr_accessible ,因此您不必担心哈希中存在 ID。

关于ruby-on-rails - 如何在 Rails 3 中更新表格中的多个条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14576680/

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