代码之家  ›  专栏  ›  技术社区  ›  Crazy Coders

如何填写编辑表单的嵌套输入?(simple\u fields\u for)Rails 5

  •  0
  • Crazy Coders  · 技术社区  · 7 年前

    我有一个 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
    

    新建/创建方法非常适合此代码。但编辑表单不会填充嵌套的模型输入。

    1 回复  |  直到 7 年前
        1
  •  1
  •   Taryn East    7 年前

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

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

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