如何在模型中使用ActiveRecord的remove_from_list方法和范围作为公共?

时间:2018-03-22 16:32:31

标签: ruby-on-rails ruby rspec acts-as-list

让我们说我的模型是C. Obj - @c

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

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

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

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

测试通过。

PS。我没有在我的规范中传递任何论据。

使用aacts_as_list gem时是否存在将范围用作公共的约束?

1 个答案:

答案 0 :(得分:0)

模型中没有公开的其他方法。然而,在进一步研究之后意识到gem acts_as_list插入方法名称(在本例中为remove_from_list作为公共范围方法中的参数。通过在方法定义中放置(* args)来修复此问题。

感谢@Brendon Muir提出的建议。