J'ai les classes suivantes:Quelle serait cette relation?
class MockQuestion < ActiveRecord::Base
belongs_to :mock
belongs_to :question
end
class Mock < ActiveRecord::Base
has_many :mock_questions
has_many :answers
end
class Question < ActiveRecord::Base
has_many :mock_questions
has_many :answers
end
class Answer < ActiveRecord::Base
belongs_to :question
belongs_to :mock
end
Comme une réponse peut appartenir à une question et un Mock, je voudrais vous connecter au MockQuestion avec la même maquette et à la question.
Je l'interroger par:
Answers.where(question_id: question_id, mock_id: mock_id)
Mais je voudrais faire quelque chose comme
MockQuestion.answers
Y at-il relation que je peux utiliser pour le faire?
PS: la table des réponses a à la fois "mock_id" et "question_id"
Ouais, c'est ce que j'utilisais. Mais puisque ce n'est pas une relation, je ne peux pas le charger avec impatience. –
Vous pouvez utiliser la commande join de rails pour le chargement impatient dans ce cas, voici un bon lien http://blog.bigbinary.com/2013/07/01/preload-vs-eager-load-vs-joins-vs-includes .html, cela vous aidera à démarrer. – Babar