Rails中为未持久化记录构建has_many关联记录报错求助
Rails未持久化记录构建has_many关联记录的问题解决
你遇到的问题核心是Rails针对不同关联类型生成的构建方法命名规则不同:
has_one关联对应单数形式的构建方法,比如build_commenthas_many关联对应复数形式的方法,以下两种写法都可以解决你的问题:
方式一:通过关联集合调用build
p = Post.new(text: 'Some post') p.comments.build(content: 'some comment')
方式二:直接调用复数形式的build方法
p = Post.new(text: 'Some post') p.build_comments(content: 'some comment')
不管Post是否已持久化,这两种方式都能构建关联的Comment记录。后续执行p.save时,只要Comment的验证逻辑通过,关联的评论会被自动保存到数据库。
内容的提问来源于stack exchange,提问作者aldm
相关产品推荐
相关产品推荐

