如何填写编辑表单的嵌套输入? ( 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
我有一个 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