0

我有一个测试规范,我使用以下代码行将 3 个变量分配给表中的会话令牌:

@auth_token, @auth2_token, @auth3_token = Session.limit(3).map(&:token) 

我现在希望从我的 Roles 表中分配 3 个变量作为角色类,它不仅限于一个属性,而是整个类。我已经尝试了以下但它似乎没有工作:

@role1, @role2, @role3 = Role.limit(3).map

这可以实现吗?任何指针将不胜感激!

4

2 回答 2

1

它适用于身份验证令牌,因为 map 将关系对象转换为数组,然后将其分配给变量。对于只调用 map 的角色返回一个可枚举而不是一个数组。

您可以直接在限制调用返回的关系对象上调用 to_a 以将其转换为数组。

@role1, @role2, @role3 = Role.limit(3).to_a

于 2012-05-01T15:45:36.287 回答
0

不确定如何解决这个问题,但使用以下方法解决了问题:

@role1 = Role.find_by_name!("First") 
@role2 = Role.find_by_name!("Second")
@role3 = Role.find_by_name!("Third")
于 2012-05-03T08:11:41.520 回答