0
私はこれらの3つのモデルを持っています。トピックと投稿は多対多の関係にあります。関連モデルをJSON結果に含めるにはどうすればいいですか?
class Topic < ApplicationRecord
has_many :post_topic
has_many :posts, through: :posts_topics
validates :name, presence: true, length: { in: 3..26 }, uniqueness: true
end
class Post < ApplicationRecord
has_many :post_topic
has_many :topics, through: :post_topic
validates :title, presence: true, length: { in: 3..255 }
validates :body, presence: true, length: { in: 3..1400 }
accepts_nested_attributes_for :topics, allow_destroy: true
end
class PostTopic < ApplicationRecord
self.table_name = "posts_topics"
belongs_to :post
belongs_to :topic
end
私は記事をフェッチするとき、私はJSONオブジェクトはトピックは、同様にこのようなものが含まれているしたい:私は関連を含めるための方法を含むが、ときに私が使用している
{
title: ...,
body: ...,
topics: [ ... ]
}
をhttpieを使用して結果をテストした場合、返された投稿には関連付けられたレコードが含まれていません。
[
{
"body": "bar",
"created_at": "2017-04-13T00:29:51.506Z",
"id": 1,
"title": "foo",
"updated_at": "2017-04-13T00:29:51.506Z"
},
{
"body": "bar",
"created_at": "2017-04-13T21:20:21.854Z",
"id": 2,
"title": "foo",
"updated_at": "2017-04-13T21:20:21.854Z"
},
{
"body": "bar",
"created_at": "2017-04-13T21:22:02.979Z",
"id": 3,
"title": "foo",
"updated_at": "2017-04-13T21:22:02.979Z"
}
]
インクルードが戻りオブジェクト内の関連するレコードを置くことになっメソッドが含まれないです??:
def index
@posts = Post.includes(:topics).all
json_response(@posts)
end
ここhttpie結果です