如何在嵌套形式的测试中使用赋值?

How to use assigns in a test with nested form?

如何在嵌套情况下使用赋值?

作为测试的一部分,我用有效信息做了一个 post:

post organizations_path, organization: { org_name: "abcdef",
                                         phone: "0123456",
                    members_attributes: [email: "uniqueemail@uniqu.br",
                                         username: "solida",
                                         password: "foobar",
                                         password_confirmation: "foobar"] }

这 post 为一个组织可以有多个成员的嵌套形式。

测试继续:

organization = assigns(:organization)
member = assigns(:member)

这适用于组织,但不适用于成员(它不会为成员分配任何内容)。我试过的其他形式都没有用:

member = assigns(:organization.member)
member = assigns(:organization.members_attributes)
member = assigns(:members_attributes)

如何在这种嵌套情况下也为成员使用分配?

Assigns 只允许您访问一个实例变量(在您的情况下为 @organization。)我假设这是在您的控制器中填充了一个 Organization 的实例,因此您可以访问相同的成员如果您直接在该实例上访问它们,您会采用这种方式,即:

member = assigns(:organization).members.first

如果您的 Organization 有很多成员,您需要使用 first 来获得一个(即使您只创建了一个。)