如何使用嵌套表单进行测试?

时间:2015-05-01 19:01:58

标签: ruby-on-rails ruby ruby-on-rails-4 integration-testing

如何在嵌套情况下使用分配?

作为测试的一部分,我发布了有效信息:

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

这会发布到一个嵌套表单,其中一个组织可以有多个成员。

测试继续进行:

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

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

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

如何在这个嵌套的情况下使用成员分配?

1 个答案:

答案 0 :(得分:0)

Assigns只允许您访问实例变量(@organization。)我假设在控制器中填充了Organization的实例,因此您可以像访问相同的方式访问成员如果您直接在该实例上访问它们,即:

member = assigns(:organization).members.first

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