所以我得到像这样的哈希数组
[1, {"item_name"=>"Estella Top", "item_number"=>"73", "quantity"=>"1", "option_name1_"=>"UK - 4, White"}]
[2, {"item_name"=>"Test Top", "item_number"=>"74", "quantity"=>"1", "option_name1_"=>"UK - 4, Red"}]
我有这个创建动作:
def create
f_turn = extract_items
Page.create!(line_item_id: "#{f_turn.fetch("item_number")}",
option_name: "#{f_turn.fetch("option_name1_")}", quantity: "#{f_turn.fetch("quantity")}")
render nothing: true
end
提取项是一个提取数组的函数。
我需要这些价值观,但出于某种原因,它不起作用。
我也试过了:
def create
f_turn = extract_items
f_turn.each do |key, values|
Page.create!(line_item_id: ["item_number"],
option_name: ["option_name1_"], quantity: "["quantity"])
render nothing: true
end
它们都不起作用。使用后者,而不是实际值,我得到"[\"item_number\"]"
作为值。
任何帮助,将不胜感激!提前谢谢!
更新代码中的错误
def extract_items
mod_params = Hash.new{|k, v| k[v] = {} }
ITEM_PARAM_PREFIXES.each do |item_data_key|
key_tracker = 1
loop do
current_key = (item_data_key + key_tracker.to_s).to_sym
if params.include? current_key
mod_params[key_tracker][item_data_key] = params[current_key]
else
break
end
key_tracker += 1
end
end
mod_params
end
答案 0 :(得分:0)
如果您的哈希采用您发布的格式,则应该有效:
def create
f_turn = extract_items
f_turn.each do |key, values|
Page.create!(line_item_id: values["item_number"],
option_name: values["option_name1_"], quantity: values["quantity"])
render nothing: true
end
end
end
您无法通过原始代码的外观访问哈希值。