2011-08-07 8 views
0

私はモデルオブジェクトのコレクションを持っていますが、これは別のコレクションに変換する必要がありますが、モデルの属性の多くは削除されています。モデルコレクションから新しいハッシュコレクションを作成する方法

私が既存のコレクションをループして新しいコレクションを作成する以外は、より良い方法がありますか?

User id, name, password, country, city 

そして、私はUserモデルにだけ属性を持つ新しいコレクションを作成したい:

は、私はのようなユーザモデルを持っていると言うid, name, country

これを行うための最善の方法は何ですか?

+0

要件を少し拡大できますか? ActiveRecordインスタンスのコレクションが必要ですか?なぜコピー?メモリコピーまたは永続コピーを意味しますか? – bjg

答えて

0

.selectメソッドは、オブジェクトの指定されたフィールドを取得します:

users = User.select([:id, :name, :country]) 

だから、ユーザーIDのみ、名前と国の人口を持つすべてのユーザーオブジェクトの配列です。それはあなたが必要とするものですか?

+1

これは正しいことです。これを行うとコレクションが読み込み専用になり、選択されていないプロパティを読み込もうとすると、Railsは 'ActiveRecord :: MissingAttributeError'例外をスローします。 –

関連する問題