从我的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

我的代码的精确编辑:
externalshopify 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。我需要除id8cd66767sssxxxxx之外的所有对象:
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/

10-14 01:41