從我的last question,我似乎無法得到我想要的。下面解釋好多了:如果物品存在x次,運行代碼
external = ["apple"]
internal = ["grapes", "pear", "mangoes", "apple"]
external.each do |fruit|
if not internal.include?("apple") # fruit will be in place of apple.
puts "yes"
# run code
end
end
到目前爲止這是打印一次。如何讓它打印三次?在英文中,我要說的是,如果apple
存在,請單獨留下apple
,給我其他人,並運行下面的代碼。如果有4個項目,其中一個是apple
,則運行代碼三次。如果apple
不存在,則運行代碼4次。
我希望這個很清楚。由於
我需要100%精確:
內部是一個模型(Postgres的) 外部是shopify API(陣列)
我已經在我的數據庫,Bar
保存shopify的產品ID,在名爲foo
的列上。 Bar.first.foo
給我Shopify的ID。 Bar
將擁有其他物品,不含shopify編號。所以,如果shopify在那裏,給我休息。這就是爲什麼我想出了:
external.each do |fruit|
if not internal.include?("apple") # fruit will be in place of apple.
puts "yes"
# run code
end
end
我的代碼的精確編輯:
的external
是shopify product response。
external = # shopify's response (forget about the above example).
internal = Product.all # All of the user's products
所以在我的產品型號中,我有一個產品ID。該ID是用於shopify產品。例如:
Product.first.product_id = # "8cd66767sssxxxxx"
在同樣的Model(Product)中,我有更多的對象以及Shopify產品ID。我需要的所有對象,除了ID 8cd66767sssxxxxx
:
Product.last.product_id = # "BOOK" etc but not a shopify id.
fl00r的回答工作在我的控制檯,而不是在控制器中。奇怪的。這對我來說很有用。
external.each do |e|
internal.each do |i|
puts i.product_id unless i.product_id == e.id.to_s
end
end
小問題。在第一次迭代中,包含id
,但不在第二次。不知道從這裏做什麼。
(內部 - 外部).each {| fruit |把'是'#你的代碼} –
那麼輸出是什麼? – fl00r
@ fl00r'<產品:0x007fea45101da0>'x13(全部如果數組)。我期待x12。 – Sylar