0
私はユーザーテーブルとアドレステーブルを持っています。ユーザーには多くのアドレスがあります。だから私のモデル構造はフィールドをフィールドに含める
class User < ActiveRecord::Base
has_many :addresses
end
class Address < ActiveRecord::Base
belongs_to :user
end
私はユーザーの国のコードと一緒に表示したいと思います。私はn+1
User.where(:active => true).includes(:addresses)
SELECT "users".* FROM "users" where active=true
SELECT "addresses".* FROM "addresses" WHERE "addresses"."user_id" IN (1, 2)
を避けるためにincludes
を使用しているので期待通りここで私は、アドレスとともに、ユーザーを取得します。しかし私のシナリオでは、DBからすべてのアドレスフィールドを取得したくありません。私はより多くのメモリを消費したくないので、アドレスオブジェクトからはcountry_code
で十分です。その
SELECT "addresses"."country_code" FROM "addresses" WHERE "addresses"."user_id" IN (1, 2)
等は、我々は上記のシナリオでは、クエリに対処するためのselect
オプションを適用することができればだから私の2番目のクエリには良いでしょうか?
のようなアドレスモデルのデータにアクセスするには、あなたのビューに使うよりも、あなたは、クエリのどのような目的についてより多くの情報を含めることができますありますか? –
@AnthonyE Question updated – Selvamani
ありがとうございます@ br3nt私はそれを確認しませんでした。 – Selvamani