除非XYZ'查询不起作用,否则Rail3'返回False

时间:2012-02-16 12:13:31

标签: ruby-on-rails ruby-on-rails-3 state-machine

在我的rails3.1应用程序中,我正在尝试在我的一个订单模型中应用以下逻辑。

 def digital?
   line_items.map { |line_item| return false unless line_item.variant_id = '102586070' }
 end

我创建了一个名为prepaid_voucher的独立变体,其id = 102586070.尽管如此,结果却是假的...

  

订单有很多line_items

     

LineItem属于订单和变体

     

Variant有很多line_items

这是执行此类任务的最佳方式吗?我该如何解决?

1 个答案:

答案 0 :(得分:1)

首先,我认为你想在这里==加倍line_item.variant_id = '102586070',然后我宁愿选择那样的东西(如果我明白你想要的话)

def digital?
  line_items.select{|line_item| line_item.variant_id == '102586070'}.any?
end

但是很难理解你真正想要的是什么,如果找不到id会有什么预期的行为?