Rails:如何在发布后保存表单数据

Ale*_*lex 0 ruby-on-rails

当我使用form_for :model数据时,我会在提交表单时保存数据。

但是,当我使用 时form_tag,处理表单后数据会丢失。

我需要使用,form_tag因为我在一种形式中有两个模型。

有没有办法保存表单数据form_tag

Ada*_*sek 5

您在问题中做出了两个错误的假设。首先,form_tag对于多模型表单来说,没有必要,甚至不推荐;其次,form_tag与 没有做任何根本不同的事情form_for,您很可能没有为控制器正确设置字段名称的格式。

为了创建具有嵌套模型的表单,您需要将fields_for帮助器与form_for. 需要首先在模型中定义关系accepts_nested_attributes_for。由于您没有向我们提供有关您的模型的任何信息,我将给您一个虚构的示例:

class Person < ActiveRecord::Base
  has_one :address
  accepts_nested_attributes_for :address
end

class Address < ActiveRecord::Base
  belongs_to :person
end
Run Code Online (Sandbox Code Playgroud)

这告诉 ActiveRecord Person 模型可以接受 Address 属性,并将这些属性传递给要创建的正确模型。

<% form_for :person do |p| %>
  <% p.fields_for :address do |a| %>
    use the a form builder to create
    fields for the address model here
  <% end %>
<% end %>
Run Code Online (Sandbox Code Playgroud)

fields_for从表单生成器链接帮助器p可以让帮助器以正确的格式生成属性。

详细信息:嵌套模型表单