从我的last question,我似乎无法得到我想要的下面的解释好多了:
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(数组)
我已将Shopify的产品ID保存在数据库
Bar
中名为foo
的列中。Bar.first.foo
给我shopify的id。Bar
将有其他对象,有/没有shopify id。因此,如果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"
在同一个模型(产品)中,我有更多的对象,以及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
,但在第二次迭代中不包含不知道从这里做什么。 最佳答案
你为什么不这样做呢?
(internal - external).each do |fruit|
puts 'yes'
#your code
end
关于ruby-on-rails - 如果项目存在,则运行代码(如果x次),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39272365/