如何在模型中将范围作为公共范围remove_from_list活动记录方法使用?



假设我的模型是C。Obj - @c

C acts_as_list gem 定义为 acts_as_list范围:"...">

和范围为 : scope :p ublic -> {where (some_condition)}

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

范围 :p ubli -> {where (some_condition)}

测试通过。

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

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

模型中没有其他 public 方法。但是,在对此进行更多研究后,意识到 gem acts_as_list插入方法名称(在本例中remove_from_list作为公共作用域方法中的参数。通过在方法定义中放置 (*args) 来解决此问题。

感谢@Brendon缪尔的建议。

最新更新