gpt4 book ai didi

ruby-on-rails - 记录创建错误 : nil object instead of array?

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

我有一个 Topic有很多Posts , 并接受它们的嵌套属性。当我创建一个主题时,它也会创建第一篇文章。

Topics#create叫我得到一个NoMethodError尝试评估 nil.[]= 时,我就是想不通是什么原因造成的。

创建方法:

@forum = Forum.find params[:forum_id]
params[:topic][:post_attributes][:member_id] = current_member.id
@topic = @forum.topics.create params[:topic]
respond_with @topic, location: topic_url(@topic)

我的新主题表单:
- @topic.posts.build
= form_for @topic do |topic_form|
= topic_form.label :title
= topic_form.text_field :title
= topic_form.fields_for :posts do |post_fields|
= post_fields.label :content
= post_fields.text_area :content

知道什么是错的吗?

最佳答案

我的猜测是它在这条线上:

params[:topic][:post_attributes][:member_id] = current_member.id

您可能应该将其更新为:

params[:topic][:post_attributes][0][:member_id] = current_member.id

或者

params[:topic][:post_attributes].first[:member_id] = current_member.id

因为您正在使用 has_many 关联,所以可能会有多个帖子与主题一起提交,因此 post_attributes 的参数实际上是一个数组。

关于ruby-on-rails - 记录创建错误 : nil object instead of array?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4847016/

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