我无法解决以下问题 任何帮助或建议表示赞赏
代理商在他所在地区从一个商店到另一个商店的纸张上收集产品订单。
在一天结束时,他会将每件商品的数量插入每个商店。
每家商店订购超过4种产品。
我需要设计能够批量插入。
<table>
<tr>
<td>Shop1</td>
<td>Product1</td>
<td>Product2</td>
<td>Product3</td>
<td>Product4</td>
etc...
</tr>
<tr>
<td>Shop2</td>
<td>Product1</td>
<td>Product2</td>
<td>Product3</td>
<td>Product4</td>
etc...
</tr>
etc...
</table>
答案 0 :(得分:1)
一种方法可能是使用自定义表单模型。 This是关于这个主题的非常好的指南。这可能不完美,但至少应该让你走上正确的轨道。以下所有内容(针对您的问题稍作修改)代码都会从上面链接的博客转到Sam Slotsky。阅读帖子了解每件作品的更多细节。
这是自定义表单模型:
class ProductForm
include ActiveModel::Model
attr_accessor :products
def products_attributes=(attributes)
@products ||= []
attributes.each do |i, product_params|
@products.push(Product.new(product_params))
end
end
end
这是控制器:
class ProductsController < ApplicationController
def new
@product_Form = ProductForm.new(products: [Product.new])
end
def create
@product_form = ProductForm.new(params[:product_form])
if @product_form.save
flash[:notice] = "Created products"
redirect_to root_path
else
flash[:notice] = "There were errors"
render :new
end
end
end
以下是观点:
<div>
<%= form_for @product_form, url: products_path, method: :post do |f| %>
<%= f.fields_for :products do |c| %>
<%= c.text_field :attr_1 %>
<%= c.text_field :attr_2
<%- # ... etc ... %>
<% end %>
<p>
<%= f.submit "Submit" %>
</p>
<% end %>
</div>