gpt4 book ai didi

sql - rails : submitting a form with multiple objects

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

我正在创建一个 Rails 应用程序,但遇到了一些障碍。我想要一个“为 DataType1 创建新记录”表单,它不仅为 DataType1 创建一个新行,而且为 DataType2 插入最多四个新行。

我对 fields_for 了如指掌,但我的问题是我需要提交最多四个 DataType2,它们与 DataType1 的唯一联系是它们通过 DataType2 中的字段引用。

这是简化的数据库:

create_table :data_type_1 do |t|
t.string :title
t.text :body

t.timestamps
end

create_table :data_type_2 do |t|
t.belongs_to :parent

t.timestamps
end

现在,我已经建立了所有关系;那不是问题。问题是我似乎无法弄清楚如何将 DataType2 的参数与新 DataType1 的参数一起传递。一旦有人向我展示了我应该如何去做,我就可以很容易地设置新的 DataType2 与新的 DataType1 相关联。

这是我目前的表单内容:

<% form_for(@data_type_1) do |f| %>
<%= f.error_messages %>

<p>
<%= f.label :title %><br />
<%= f.text_field :title %>
</p>

# Etc...

<p>
# New items need to be iterated here
# DataType2[1]: [ ]
# DataType2[2]: [ ]
# DataType2[3]: [ ]
# DataType2[4]: [ ]
# (Note that these numbers are just examples.)
</p>

<p>
<%= f.submit "Create" %>
</p>
<% end %>

我是 Rails 的新手,如果这个问题有点乱,我深表歉意。

最佳答案

This RailsCast 谈到将“DataType2”列表插入“DataType1”。有趣的部分是这些

app/views/projects/_form.html.erb

  <% for task in @project.tasks %>
<% fields_for "project[task_attributes][]", task do |task_form| %>
<p>
Task: <%= task_form.text_field :name %>
</p>
<% end %>
<% end %>

app/models/project.rb

def task_attributes=(task_attributes)
task_attributes.each do |attributes|
tasks.build(attributes)
end
end

关于sql - rails : submitting a form with multiple objects,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/421536/

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