gpt4 book ai didi

ruby-on-rails - 使用 simple_form 和 rails 4 创建多个嵌套表单

转载 作者:数据小太阳 更新时间:2023-10-29 06:39:24 26 4
gpt4 key购买 nike

我正在尝试使用以下模型创建一个简单的应用程序:类别--[has_many]--> 问题--[has_many]--> 答案

我有以下用于创建类别 + 问题的代码(categories/_form.haml.html):

= simple_form_for(@category) do |f|
= f.error_notification
= f.input :title, label: "Category title: "
= f.simple_fields_for :questions, @category.questions.build do |q|
= q.input :content, label: "Question content: "
= f.button :submit

我使用所有相同的代码来创建问题和答案 (questions/_form.haml.html)。我配置了所有关系、强参数、嵌套属性和 Controller ,对我来说工作得很好。

两个问题:

  1. 如何在 categories/_form.haml.html 中创建多个问题?

  2. 如何一次创建类别 + 多个问题 + 每个问题的多个答案(在 categories/_form.haml.html 中)?

我花了几个小时试图找出如何完成第二个,我能找到的所有信息都与 Rails 3.0 和 form_for 有关。它们都不适合我。

这里最直接的解决方案应该是这样的:

= simple_form_for(@category) do |f|
= f.error_notification
= f.input :title, label: "Category title: "
= f.simple_fields_for :questions, @category.questions.build do |q|
= q.input :content, label: "Question content: "
= q.simple_fields_for :answers, q.questions.build do |a|
= a.input :content, label: "Answer content"
= f.button :submit

但它给了我

undefined method `questions' for #<SimpleForm::FormBuilder:

我在这里错过了什么?

最佳答案

你在这里弄错了:= q.simple_fields_for :answers, q.questions.build do |a|您在构建器对象 q 而不是模型对象上调用 questions 方法。可能你想要这个:

= q.simple_fields_for :answers, q.object.questions.build

关于ruby-on-rails - 使用 simple_form 和 rails 4 创建多个嵌套表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19347450/

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