1

私はこのサンプルドキュメントを持っています:

{
    "_id" : ObjectId("4f98fd1df2699a2f8a000003"),
    "comments" : "Foo bar",
    "location" : "Somewhere",
    "user_id" : ObjectId("4f98fd1df2699a2f8a000001")
}

コントローラを使用してデータを取得した場合:

respond_to :json

def index
  respond_with Comment.all
end

JSONを返します:

[{
   "_id": "4f98fd1df2699a2f8a000003",
    "comments": "Foo bar",
    "location": "Somewhere",
    "user_id": "4f98fd1df2699a2f8a000001",
}]

私の質問は、応答にUserクラスのフィールドを簡単に含めるにはどうすればよいですか?

class User
    include Mongoid::Document

    field :username
    field :first_name
    field :last_name
end
4

2 に答える 2

2

のデフォルトをオーバーライドする必要がありますas_json

def index
  respond_with Comment.all.as_json(:include => "user")
end

より良い代替策は、 JbuilderなどのJSONテンプレートビルダーを使用することです。

于 2012-04-26T10:59:55.417 に答える
0

で試してみてください:

respond_with Comment.includes(:user).all

こちらのドキュメントをご覧ください。

于 2012-04-26T09:42:34.630 に答える