红宝石块中的两个条件

时间:2015-04-14 14:29:48

标签: ruby-on-rails ruby ruby-on-rails-4

我正在尝试做这样的事情:

products = products.select { |product|
  product.quantity > 0 || (
    product.has_attribute?(:permit_negative_quantity) &&
      product.permit_negative_quantity == true)
  )
}

我正在尝试仅保留具有正数量的产品关联,或者,如果数量不是正数,则具有属性permit_negative_quantity并且设置为true

此块不断拒绝负数的产品。我在语法中遗漏了什么吗?有没有更好的方法呢?

2 个答案:

答案 0 :(得分:0)

似乎&&的优先级更高,导致此问题,请尝试以下操作:

products = products.select { |product| (product.quantity > 0 || (product.has_attribute?(:permit_negative_quantity) && product.permit_negative_quantity == true)) }

答案 1 :(得分:0)

好吧最后我看到了我做错了什么。

条件结尾处的:true必须是true,因为表格列是布尔值。