【发布时间】:2017-02-23 18:39:20
【问题描述】:
我将从我的控制器创建操作开始:
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 数组和获取要存储的变体标题。
它工作得很好,但是当我实际上希望它给我一个包含所有项目的订单时,这当然会为订单中的每个项目创建一个新行。
这是将我的表列转换为哈希数组的情况吗?还是我错过了另一种方法?
【问题讨论】:
-
你要的数据是
params[:line_items]。如果您希望它保留但不想要单个记录,您可以将整个哈希存储在数据库中的字段中,前提是 (a) 您的数据库支持 JSON 结构或 (b) 您使用将自动转换的serializerails 功能将哈希值转换为字符串,并在您读取记录时将其转换回来。就个人而言,您最好使用 Order 模型,该模型在 OrderItem(order_items 表)中包含has_many条目, -
params[:line_items] 返回一个数组(不同的哈希值),其中每个订单项的信息以哈希格式显示,这仍然有效吗?
-
是的,但是看看@gokulm 的回答。
标签: ruby-on-rails arrays ruby ruby-on-rails-4 hash