假设我的模型是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缪尔的建议。