0

初めて ActiveRecord で API を設計しています。子オブジェクトの親オブジェクトがありhas_manyます。belongs_to親が持つ子オブジェクト:counter_cache => true

現在、API は、時間順に並べられたすべての子の配列を持つ親を含む JSON 構造を返します。デフォルトですべての子オブジェクトを返さないように API を変更したいと考えています。理想的には、API は、子 #1、#4、および #6-22 などを返すことができるほど柔軟であり、JSON 応答はこれらの位置を示します。

私の最初の本能は、整数インデックスを保持するデータベース内の各子オブジェクトに列を追加することでした。counter_cache作成時に、その時点での親の値を使用して、この整数を割り当てることができます。このように、最初の子は #0、次の #1 というようになります。

それがこれを行う最善の方法ですか?

これが私のモデルです(モデル名は変更されています):

class Parent < ActiveRecord::Base
    has_many :children, :dependent => :destroy
end

class Child < ActiveRecord::Base
    belongs_to :parent, :counter_cache => true
end

次のような移行で、「序数」と呼ばれる整数列を Child に追加したいとしましょう。

class AddOrdinalToChild < ActiveRecord::Migration
  def self.up
    add_column :children, :ordinal, :integer, :default => 0
  end

  def self.down
    remove_column :children, :ordinal
  end
end

ordinal親に属する各子について、その子がその親に作成/割り当てられた順序を序数で記録するようにするにはどうすればよいですか?

4

0 に答える 0