【问题标题】:How to fill edit form's nested inputs ? ( simple_fields_for ) Rails 5如何填写编辑表单的嵌套输入? ( simple_fields_for ) Rails 5
【发布时间】:2018-01-24 22:33:33
【问题描述】:

我有一个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_licence 时,它会添加一个新的空许可证,这就是您看不到任何数据的原因。你只需要设置@company,我猜你是在其他一些动作上做的——所以你的编辑方法应该是空的,它应该可以工作

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


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-04-19
    • 1970-01-01
    • 1970-01-01
    • 2014-02-20
    • 1970-01-01
    • 1970-01-01
    • 2020-09-09
    • 1970-01-01
    相关资源
    最近更新 更多