我有一個模型方法,它爲問卷應用程序創建一個報告。表中的每一列代表一個不同的問題,每一行都是一個受訪者。它使用column_names方法創建一個問題ID數組,然後添加相關的響應。通過column_names循環遍歷變量
def self.import_answers(params)
@members = Member.where(:questionnaire_id => params[:questionnaire])
@columns = Report.column_names
@members.each do |member|
@report = Report.find_by_membership_number(member.membership_number)
@responses = Response.where(:member_id => member.id)
@columns.each do |column|
question = column.to_s.gsub("q", "").to_i
@response = @responses.where(:question_id => question).first
unless @response.nil?
@report.column = @response.response_id
@report.save
end
end
end
端
在線路@ report.column此方法斷裂。
我想這可能是因爲COLUMN_NAMES方法返回一個字符串數組,像這樣......
["q1", "q2", "q3", "q4", "q5", "q6", "q7", "q8", "q9", "q10"]
這意味着這一行@ report.column迭代像
@report."q1"
爲反對...
@report.q1
哪些工作。
我可能是錯的!但無論哪種方式,我都在努力弄清楚我如何才能使其工作,任何幫助將不勝感激!
你不顯示其中'被定義@ report'。另外,你可以添加發生的確切的錯誤?僅僅報告它中斷就太模棱兩可了。你期待什麼結果?你是否期待'@ report'會是一系列包含一系列問題和回答的受訪者? – sorens
報表爲每個成員創建一行。 @report引用表中的一行(成員)。我已更新我的問題以顯示完整的方法。 – tob88