0

Rails 3.0.4

次の関係を考えると

class Child < ActiveRecord::Base
  belongs_to   :parent
end

class Parent < ActiveRecord::Base
   has_many  :children
end

使用する

@parents = Parent.find(:all, :include => :children)

すべての親とその子を返します。

シリアル化中に使用できるように、各子にその親への参照を含めるにはどうすればよいですか?

たとえば、次のようなJSON形式の場合:

[
    {
        "parent": {
            "created_at": "2012-05-05T11:29:19Z",
            "id": 1,
            "updated_at": "2012-05-05T11:29:19Z",
            "children": [
                {
                    "created_at": "2012-05-05T11:35:05Z",
                    "id": 1,
                    "updated_at": "2012-05-05T11:35:05Z",
                    "parent": {
                        "created_at": "2012-05-05T11:29:19Z",
                        "id": 1,
                        "updated_at": "2012-05-05T11:29:19Z"
                    }
                }
            ]
        }
    }
]
4

2 に答える 2

1

モデルto_jsonのメソッドをオーバーライドする必要があります:Child

class Child
  belongs_to :parent

  def to_json
    attributes.merge(parent: parent.attributes).to_json
  end
end
于 2012-05-15T19:48:03.227 に答える
1
@parents = Parent.find(:all, :include => {:children => :parent})
于 2012-05-15T19:56:08.050 に答える