0

次のコード行を使用して、テーブル内のセッション トークンに 3 つの変数を割り当てるテスト仕様があります。

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

Roles テーブルから 3 つの変数をロール クラスとして割り当てたいと考えています。これは、1 つの属性だけに制限されているのではなく、クラス全体に制限されています。私は次のことを試しましたが、うまくいかないようです:

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

これは達成できますか?どんなポインタでも大歓迎です!!

4

2 に答える 2

1

map は関係オブジェクトを配列に変換し、変数に割り当てられるため、認証トークンに対して機能します。役割の場合、 map を呼び出すだけで、配列ではなく列挙型が返されます。

limit 呼び出しによって返された関係オブジェクトで 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 に答える