如何填写编辑表单的嵌套输入? ( simple_fields_for ) Rails 5

How to fill edit form's nested inputs ? ( simple_fields_for ) Rails 5

我有一个 nested 表格。 New 方法效果很好。但是在我的 edit 表单中,嵌套输入是空的。这是我的表格:

  <%= simple_form_for @company , url: admin_company_path(@company) do |f| %>
        <%= f.simple_fields_for :licence do |p| %>
         <%= p.input_field  :number  %>  
        <% end %>
  <% end %>

我公司型号:

  accepts_nested_attributes_for :licence
  has_one :licence , inverse_of: :company , :dependent => :destroy

我的许可证模型:

  belongs_to :company

我在控制器中的编辑方法:

  def edit
    // i get company id with before_action
    @company.build_licence
  end

我在控制器中的新方法:

  def new
    @company = Company.new
    @company.build_licence
  end

new/create 方法非常适合此代码。但是编辑表单不会填充嵌套模型输入。

你说它没有填充模型输入...但你正在使用 build_license 每次都会创建一个新的空的...即使已经存在...它会爆炸现有的一个。

您可能需要执行以下操作:

def edit
  // i get company id with before_action
  @company.licence || @company.build_licence
end