-1

可以说我的模型是 C 。对象-@c

C 将acts_as_list gem 定义为acts_as_list 范围:'...'

和范围为:范围:公共-> {where(some_condition)}

为 @c.remove_from_list 编写 rspec 时,测试失败并出现 ArgumentError(1 for 0)。但是,如果我将范围重命名为 public 以外的任何关键字,例如:

范围 :publi -> {where (some_condition)}

测试通过。

PS。我没有在我的规范中传递任何参数。

使用 aacts_as_list gem 时将范围用作公共是否有限制?

4

1 回答 1

0

模型中没有其他公共方法。然而,在对此进行更多研究后发现 gemacts_as_list 插入了方法名称(在这种情况下 remove_from_list 作为公共范围方法中的参数。通过在方法定义中放置 (*args) 来解决此问题。

感谢@Brendon Muir 的建议。

于 2018-06-04T02:00:20.093 回答