モデルから呼び出されたときに、関連するデータとともに特定のテーブルのすべてのレコードを取得しようとしています。私はさまざまなオプションを試しましたが、それを理解することはできません。レールにすべての関連するデータが含まれています
私はAAレールの構造を有する: (すべてのクラスがActiveRecordの継承されていると仮定します。ベースを)
class Post
has_many :image
has many :comment
end
class Image
belongs_to :post
end
class Comment
belongs_to :post
end
基本的に私は私のPostクラス(またはモデル)に、関連するすべてのデータを持つすべての記事を取得したいが。たとえば:
Post.all (but then here do something to include each post's images and comments)
私はこれらの2つのオプションが試してみたが、彼らは関連するデータを返すいけない
Post.all.eager_load(:image, :comment)
Blog2.all.includes(:image, :comment)
私のコントローラでは、私は、インデックスメソッド
def index
@posts = Post.all
render json: @posts, :include => [:image, :comment]
end
このインデックスメソッドの作品を持っています完全に、各レコードに関連するデータが含まれていますが、モデル内の関連するデータですべての投稿を取得しようとすると、私はうまく動作しません。助けてくれてありがとう
あなたは 'Post.joins([:画像:コメント])試してみました。ALL'? 'rails console'で' 'Post.joins([:image、:comment])。to_sql'を実行し、' sql'が生成されていることを確認することができます。 – Dharam
そして、関連付けをjsonにエクスポートするには、 'render json:@ posts.to_json(:include => [:image、:comment))'を使う必要があります。 – Dharam