2017-01-14 5 views
0

나는 다음과 같은 구조를 가지고 : 내 answer 모델에서협회 '를 통해 has_many'에서 별도의 속성 값을 가져

:

class Answer < ApplicationRecord 
    has_many :answer_test_case_results 
    has_many :test_cases_result, through: :answer_test_case_results, source: :test_case 
end 

answer_test_case_result :

class AnswerTestCaseResult < ApplicationRecord 
    belongs_to :answer 
    belongs_to :test_case 

    def get_output 
    output 
    end 
end 

answer_test_case_result 모델이있다 추가 속성은 output입니다. 내 answer 모델에서이 output 관계에 내 test_cases_result 관계에서 액세스하고 싶습니다. 그러나이 특성이 저장된 방법은이개체 만 저장하고이 대답과 연결되어 있습니다.

내 AnswerTestCaseResult (즉, AnswerTestCaseResult.where(answer: answer, test_case: test_case))에서 직접 쿼리없이 output에 액세스하는 방법이 있습니까?

답변

0

이런 종류의 작업의 예가 부족하다는 것은 믿기지 않습니다. 하지만 지금 내가 뭘 잘못하고 있는지 이해 : has_many :test_cases_result, through: :answer_test_case_results, source: :test_case 아니라 내 has_many :answer_test_case_results, 액세스해야합니다.

그리고 내 경우에, 속성를 마칠 경우, 더 적절한 의미, 내가 사용할 수 있습니다

has_many :test_cases_result, class_name: "AnswerTestCaseResult" 그래서 내가 예를 들어, answer.test_cases_reult.first.output 통해 output에 액세스 할 수 있습니다.