2017-01-14 79 views
0

我有以下結構:獲取來自額外的屬性值

在我answer型號:

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模型中,我想從我的test_cases_result關係中訪問這個output,但是它屬於這個屬性的方式只返回保存並與此答案關聯的test_case對象。

有沒有辦法直接從我的AnswerTestCaseResult(即AnswerTestCaseResult.where(answer: answer, test_case: test_case))訪問output

回答

0

這種操作例子的稀缺性令人難以置信。但現在我明白我在做什麼錯了:我應該訪問我的has_many :answer_test_case_results,而不是has_many :test_cases_result, through: :answer_test_case_results, source: :test_case

如果我要離開的屬性,我的情況下,更合適的語義,我可以使用:has_many :test_cases_result, class_name: "AnswerTestCaseResult"

所以我可以通過answer.test_cases_reult.first.output訪問output,例如。