gpt4 book ai didi

ruby-on-rails - 如何在Rails中使用json更新nested_attributes?

转载 作者:行者123 更新时间:2023-12-04 06:03:41 25 4
gpt4 key购买 nike

我有

 class Test < ActiveRecord::Base
has_many :samples
accepts_nested_attributes_for :samples
end




 class Sample < ActiveRecord::Base
belongs_to :tests
end


现在当我如下创建新值时


curl -H'内容类型:application / json'-H'接受:application / json'
-X POST http://localhost:3000/tests.json -d“ {\” test \“:{\” name \“:\” xxxxxx \“,
\“ samples_attributes \”:[{\“ username \”:\“ yyyyyyyy \”,\“ age \”:\“ 25 \”}]}}“”


它为测试创建了一个新值,并且还在 sample表中创建了一个条目,但是在更新时会更新测试表,而在示例表中创建一个新条目。所以我该如何更新当前条目?

请帮我。

最佳答案

您需要在散列中传递id以获得更新记录(view API):

class Member < ActiveRecord::Base   
has_many :posts
accepts_nested_attributes_for :posts
end


如果哈希包含与已关联记录匹配的 id键,则将修改匹配记录:

member.attributes = {
name: 'Joe',
posts_attributes: [
{ id: 1, title: '[UPDATED] An, as of yet, undisclosed awesome Ruby documentation browser!' },
{ id: 2, title: '[UPDATED] other post' }
]
}


对于每个没有 id键的哈希,将实例化一条新记录。

params = { member: {
name: 'joe', posts_attributes: [
{ title: 'Kari, the awesome Ruby documentation browser!' },
{ title: 'The egalitarian assumption of the modern citizen' }
]
}}

关于ruby-on-rails - 如何在Rails中使用json更新nested_attributes?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18377638/

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