1

最近,我已将我的一个模型从自制(基于 parent_id)树结构迁移到祖先 gem,并且我有一个失败的控制器规范用于该new操作。有问题的行是:

assigns(:category).should be_a_new(Category).with(parent_id: root_category.id)

但是它抱怨没有属性parent_id,实际上它不是因为 parent_id 现在是一种方法。我应该如何修改上面的行来检查一个新的类别和那个category.parent_id == root_category.id

4

1 回答 1

1

您可以使用列名 ancestry 来代替 'parent_id' 来存储默认情况下为 'ancestry' 的父 ID。您可以通过将其设置为类方法的选项来更改名称has_ancestry,例如has_ancestry(ancestry_column: :parent_id).

您修改后的测试代码如下所示:

assigns(:category).should be_a_new(Category).with(ancestry: root_category.id.to_s)
于 2013-05-27T09:00:47.450 回答