0
I have 3 classes that relate as follows:
class AnamnesisModel < ApplicationRecord
  has_many :anamnesis_questions
  accepts_nested_attributes_for :anamnesis_questions
end
class AnamnesisQuestion < ApplicationRecord
  belongs_to :anamnesis_model
  belongs_to :question
end
class Question < ApplicationRecord
end
The point is that when selecting a particular Anamnesis Model, I would like you to load all 3 into a single sql, as I am using Rails like webAPI I want to send this whole filled object up.
So far I’ve managed to do something almost good that way.
render json: @anamnesis_model.to_json(:include => {:anamnesis_questions => {:include => :question}})
The problem with this solution is that it doesn’t do everything in one sql.
(Example of an anamnesis with 3 questions)
    Started GET "/anamnesis_models/41" for ::1 at 2017-07-12 15:03:50 -0300
Processing by AnamnesisModelsController#show as HTML
  Parameters: {"id"=>"41"}
  AnamnesisModel Load (2.0ms)  SELECT  "anamnesis_models".* FROM "anamnesis_models" WHERE "anamnesis_models"."id" = ? LIMIT ?  [["id", 41], ["LIMIT", 1]]
  AnamnesisQuestion Load (1.0ms)  SELECT "anamnesis_questions".* FROM "anamnesis_questions" WHERE "anamnesis_questions"."anamnesis_model_id" = ?  [["anamnesis_model_id", 41]]
  Question Load (1.0ms)  SELECT  "questions".* FROM "questions" WHERE "questions"."id" = ? LIMIT ?  [["id", 61], ["LIMIT", 1]]
  Question Load (1.0ms)  SELECT  "questions".* FROM "questions" WHERE "questions"."id" = ? LIMIT ?  [["id", 62], ["LIMIT", 1]]
  Question Load (3.0ms)  SELECT  "questions".* FROM "questions" WHERE "questions"."id" = ? LIMIT ?  [["id", 63], ["LIMIT", 1]]
						
I got it here using joins + includes.
– Jonathan