Ruby on rails 铁路3号线';返回False,除非XYZ';查询不起作用

Ruby on rails 铁路3号线';返回False,除非XYZ';查询不起作用,ruby-on-rails,ruby-on-rails-3,state-machine,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 我创建了一个名为预付费凭证的单独变体,其id=102586070。尽管如此,结果是错误的 订单有许多行项目 行项目属于订单和变体 变量有许多行项目 这是执行这样一项任务的最佳方式吗?我该怎么解决呢?首先,我想

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

 def digital?
   line_items.map { |line_item| return false unless line_item.variant_id = '102586070' }
 end
我创建了一个名为预付费凭证的单独变体,其id=102586070。尽管如此,结果是错误的

订单有许多行项目

行项目属于订单和变体

变量有许多行项目


这是执行这样一项任务的最佳方式吗?我该怎么解决呢?

首先,我想你需要一个双重的
=
在这里
行\u item.variant\u id='102586070'
,那么我宁愿去做类似的事情(如果我理解你想要什么)


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

试图避免一个过于复杂的问题。我正在使用spree并试图改变购物车进程的状态。即,如果数字产品转到x,否则转到y。但是上面的内容仍然不起作用:(是的,我修改了好几次,但是根据id的存在(顺便说一句,哪个应该是常量或者更具描述性的变量)应该回答true或false)。根据您的代码
返回false,除非
这是
如果
=>
返回true。任何
都可以,但您可能需要
。空?
。空白?
也要确保在该函数之后没有保存任何对象,或者其中一些对象可能包含您在开始时用
=指定的变量ide> 我的变体id肯定有问题,因为它也不起作用。我看对了,会检查日志的。干杯
def digital?
  line_items.select{|line_item| line_item.variant_id == '102586070'}.any?
end