Ruby on rails 嵌套属性将不会保存

Ruby on rails 嵌套属性将不会保存,ruby-on-rails,ruby,activerecord,Ruby On Rails,Ruby,Activerecord,我已经彻底搜索了stackoverflow,并尝试了所有出现的结果,但我仍然被卡住了。问题就在这里 我有一个可以上传音乐文件的应用程序。上传文件后,我扫描ID3数据,并使用该数据填充数据库中对象的所有各种信息……如标题、专辑、年份、流派等 艺术家领域有时有很多艺术家,所以对于这个领域,我写了一个方法,将所有艺术家作为一个整体进行散列 {:artist => [{:name=>"Artist 1"},{:name=>"Artist 2"}]} 该数据现在包含在我要保存到数据库的

我已经彻底搜索了stackoverflow,并尝试了所有出现的结果,但我仍然被卡住了。问题就在这里

我有一个可以上传音乐文件的应用程序。上传文件后,我扫描ID3数据,并使用该数据填充数据库中对象的所有各种信息……如标题、专辑、年份、流派等

艺术家领域有时有很多艺术家,所以对于这个领域,我写了一个方法,将所有艺术家作为一个整体进行散列

{:artist => [{:name=>"Artist 1"},{:name=>"Artist 2"}]}
该数据现在包含在我要保存到数据库的对象中,如下所示:

#<Track id: 76, name: nil, title: "song title", tpath: "file_name.mp3", created_at:      "2013-06-08 23:31:24", updated_at: "2013-06-08 23:31:24", track_number: 6, artist: {:artist   => [{:name=>"Artist 1"},{:name=>"Artist 2"}]}, album_artist: "Artist Name", year: 2012,   genre: "nil", bpm: nil, length: 252, size: 79872, user_id: 2>
.parse_id3是我编写的一种方法,它扫描MP3的艺术家字段中的所有艺术家,并将其转换为

:artists_attributes => [{:name=>"Artist 1"},{:name=>"Artist 2"}]}
:artists_attributes => [{:name=>"Artist 1"},{:name=>"Artist 2"}]}
我试过了

@track.update_attributes(:artists_attributes)
@track.update_attributes(:artists_attributes)
显然,我需要添加@track.parse_id3(@track)片段才能工作


谢谢所有的回复

我认为你的问题在于打字错误:

artists_attrubutes
此外,在控制器中尝试写入:

@track = Track.new params[:track]
@track.save

要使用它,你应该在你的视图中组织你的参数。

我让它工作了,这里是需要的

@track.update_attributes(:artists_attributes => @track.parse_id3(@track))
@track.update_attributes(:artists_attributes => @track.parse_id3(@track))
.parse_id3是我编写的一种方法,它扫描MP3的艺术家字段中的所有艺术家,并将其转换为

:artists_attributes => [{:name=>"Artist 1"},{:name=>"Artist 2"}]}
:artists_attributes => [{:name=>"Artist 1"},{:name=>"Artist 2"}]}
我试过了

@track.update_attributes(:artists_attributes)
@track.update_attributes(:artists_attributes)
显然,我需要添加@track.parse_id3(@track)片段才能工作


谢谢所有的回复

我可能错了,但我认为你筑巢的方向是错误的<代码>艺术家可以
接受
曲目
的嵌套属性,因为
曲目
属于
艺术家
。在您的示例中,您试图将
曲目
链接到尚不存在的
艺术家
。我认为您需要以另一种方式构建关系,以便嵌套的_属性能够工作,因为哈希不是嵌套属性所期望的。你是如何构造表单的?哦,你是从id3标签中得到的-我在这里根本不会使用嵌套属性-直接构建艺术家对象-嵌套属性期望什么?也许这就是问题所在。打字错误是因为我修改了复制到stackoverflow帖子中的代码,在模型中它实际上是正确的。我也尝试了你的建议,但没有成功。不过,谢谢你的建议。