gpt4 book ai didi

ruby-on-rails - 从 1a 页提交两个表单

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

是否可以在一个 View 中包含两个表单并同时提交两个表单?

我不想使用嵌套表单。

例如:

我有:

Model Survey
|_question_id
|_answers_id

Model Question:
|_text

Model Answer
|_text

没有嵌套表单是否可以做到这一点?例如,我想创建一个新问题(表格 1)和一个新答案(表格 2),在 Controller 的创建方法中,我将创建一个新的调查并手动将 question_id 和 answers_id 分配给新创建的问题并相应地回答!

谢谢

最佳答案

更好的方法是使用 accepts_nested_attributes_for 通过一次表单提交来构建所有三个模型。

像这样设置你的模型:

class Survey < ActiveRecord::Base
has_one :question
has_many :answers

accepts_nested_attributes_for :question, :answers
end

class Question < ActiveRecord::Base
belongs_to :survey
end

class Answer < ActiveRecord::Base
belongs_to :survey
end

然后你可以像这样使用 rails helpers 编写你的表单:

<%= form_for @survey do |form| %>
<%= form.fields_for :question do |question_form| %>
<%= question_form.text_field :question
<% end %>
<%= form.fields_for :answers do |answer_form| %>
<%= question_form.text_field :answer
<% end %>
<%= form.submit %>
<% end %>

在将呈现表单的 Controller 操作中,您需要像这样在内存中构建新记录:

class SurveyController < ApplicationController
def new
@survey = Survey.new
@survey.build_question
@survey.answers.build
end
end

您可以在此处阅读有关accepts_nested_attributes_for 的更多信息:http://ryandaigle.com/articles/2009/2/1/what-s-new-in-edge-rails-nested-attributes

关于ruby-on-rails - 从 1a 页提交两个表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6821369/

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