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

时间:2018-01-24 22:33:33

标签: ruby-on-rails ruby ruby-on-rails-5 simple-form simple-form-for

我有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方法适用于此代码。但是编辑表单不会填充嵌套的模型输入。

1 个答案:

答案 0 :(得分:1)

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

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

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