我将从我的 Controller 创建操作开始:
def create
this_order = params[:line_items]
this_order.each do |this|
@order = Transaction.new
@order.shopifyid = params[:id]
@order.vartitle = this['variant_title']
@order.save
end
end
如果您不熟悉 ShopifyAPI,这只是查看订单 JSON 并在我的交易表中创建每个订单的内部行,目前它仅存储订单 ID,然后进入 line_items 数组并获取与其一起存储的变体标题。
它工作正常,但是当然,当我实际上希望它给我一个包含其中所有项目的订单时,这会为订单中的每个项目创建一个新行。
这是将我的表列转换为哈希数组的情况吗?或者我错过了另一种方法来做到这一点?
最佳答案
您可以创建两个具有以下关系的模型 Transaction
和 Item
:
交易
has_many :items
项目
belongs_to :transaction
您的 Controller 操作:
def create
@order = Transaction.new
@order.shopifyid = params[:id]
this_order = params[:line_items]
this_order.each do |this|
@order.items.new( #Item attributes )
end
@order.save
end
我认为通过这种方式,您可以在项目表中包含variant_title
。
关于ruby-on-rails - Rails - 防止发布请求从数组创建多行,同时仍保留数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40041324/