1

これらのモデルがあるとしましょう:

class Order < ActiveRecord::Base
  has_many :lines
end

class Line < ActiveRecord::Base
  belongs_to :order
end

#line_idsいくつかの Order レコードとそれらを 1 つのリクエストでロードしたいと思います。ただし、すべての Line レコードを ActiveRecord オブジェクトにインスタンス化することは避けたいと思います。#line_idsまた、 ActiveRecord が提供するメソッドをオーバーライドしたくありません。

これは可能ですか?

4

1 に答える 1

0

Line モデルに多くの属性があり、リファクタリングのヒントとなる可能性がある場合を除き、単一の列を選択する場合と行を選択する場合では、パフォーマンスに大きな違いはありません。

IDのみが必要な場合は、 Order モデルでおそらく次のようにします

def line_ids_array
  Line.where(order_id: self.id).pluck(:id)
end

これにより、特定の注文の行 ID の配列が返されます。

于 2013-03-20T18:47:29.703 に答える