2012-05-01 24 views
0

我有一個測試spec這裏我用下面的代碼行到我的表中指定3個變量會話令牌:映射第3個記錄數據庫變量

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

我現在要指定3個變量一個來自我的Roles表的角色類,它不僅限於一個屬性,而是整個類。我曾嘗試以下,但它似乎沒有奏效:

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

才能實現這一目標?任何指針將不勝感激!

回答

1

它適用於驗證令牌,因爲映射將關係對象轉換爲數組,然後賦值給變量。對於只調用map的角色返回一個枚舉而不是數組。

您可以直接在限制調用返回的關係對象上直接調用to_a以將其轉換爲數組。

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

+0

感謝Jalvardo我從來沒有想過的,以陣列的方法,我會記住這爲未來感謝 – Jay

0

不知道如何去了解這一點,但使用了圓形的問題如下:

@role1 = Role.find_by_name!("First") 
@role2 = Role.find_by_name!("Second") 
@role3 = Role.find_by_name!("Third")