Ruby on Rails
Monday, August 19, 2013
Hi all,
I am getting this bellow error
This is my code(method):
def self.generate_normal_report(batch_ids)
batches = Batch.find(:all,:conditions => {:id => batch_ids},:select => "id")
batches.each do |batch|
exam_groups_main = batch.exam_groups
exam_scores_main = exam_groups_main.map(&:exams).flatten.compact.map(&:exam_scores).flatten.compact
archived_exam_scores_main = exam_groups_main.map(&:exams).flatten.compact.map(&:archived_exam_scores).flatten.compact
terms = batch.terms.map{|term| term.id.to_s}
students = batch.students.all(:select => "id,first_name,batch_id,user_id")
student_ids = students.map(&:id)
archived_students = ArchivedStudent.all(:conditions => {:batch_id => batch.id},:select => "id,first_name,batch_id,former_id")
student_ids.each do |student_id|
student_report = Hash.new
student = Student.find(student_id)
student_report[:term_report] = Hash.new
term_report = Hash.new
terms.each do |term|
exam_group_report = Hash.new
exam_groups = exam_groups_main.select{|exam_group| exam_group.term_id.to_s == term.to_s }
exam_groups.each do |exam_group|
exam_group_report[exam_group.id.to_s.to_sym] = Hash.new
exam_group_report[exam_group.id.to_s.to_sym][:exam_report] = Array.new
exams = exam_group.exams
exam_report = Hash.new
exams.each do |exam|
student_exam_score = exam_scores_main.select{|score| score.exam_id == exam.id and score.student_id == student.id}.first
student_mark = student_exam_score.nil? ? 0 :student_exam_score.marks
all_archived_score = archived_exam_scores_main.select{|score| score.exam_id == exam.id}.flatten.compact.map(&:marks)
all_normal_score = exam_scores_main.select{|score| score.exam_id == exam.id }.flatten.compact.map(&:marks)
all_score = (all_archived_score + all_normal_score).compact.sort.reverse
exam_position = all_score.index(student_mark).nil? ? all_score.size : (all_score.index(student_mark) + 1)
exam_report = {:subject_id => exam.subject.id,:exam_id => exam.id,:marks => student_mark,:maximum_marks => exam.maximum_marks,:exam_position => exam_position}
if all_score.size == 0
exam_report[:exam_average] = 0
else
exam_report[:exam_average] = (all_score.sum.to_f / all_score.size)
end
exam_group_report[exam_group.id.to_s.to_sym][:exam_report] << exam_report
end
class_information = ExamReport.calculate_class_position_and_class_average(exam_group,student,students,archived_students)
exam_group_report[exam_group.id.to_s.to_sym][:exam_group_position] = class_information[:rank]
exam_group_report[exam_group.id.to_s.to_sym][:exam_group_average] = class_information[:class_average]
exam_group_report[exam_group.id.to_s.to_sym][:exam_group_total] = class_information[:student_mark]
end
term_report[term.to_sym] = Hash.new
term_information = ExamReport.calculate_term_position_and_term_average(term,exam_groups,student,students,archived_students)
term_report[term.to_sym][:exam_group_report] = exam_group_report
term_report[term.to_sym][:term_position] = term_information[:rank]
term_report[term.to_sym][:term_average] = term_information[:class_average]
term_report[term.to_sym][:term_total] = term_information[:student_mark]
end
student_report[:term_report] = term_report
annual_information = ExamReport.calculate_annual_position_and_annual_average(student,students,archived_students,batch.terms)
student_report[:annual_position] = annual_information[:rank]
student_report[:annual_average] = annual_information[:class_average]
student_report[:annual_total] = annual_information[:student_mark]
exam_report = ExamReport.find_by_student_id(student_id)
full_report = Hash.new
full_report[:batch_id] = student.batch_id
full_report[:report] = student_report
report_array = Array.new
report_array << full_report
if student.graduated_batches.empty?
if exam_report.nil?
report_card = ExamReport.new(:student_id => student.id,:report_card => report_array)
report_card.save
report_card.report_card.select{|r| r[:batch_id] == student.batch.id}.first[:combined_report] = Hash.new
report_card.report_card.select{|r| r[:batch_id] == student.batch.id}.first[:combined_report] = self.prepare_combined_marksheet(student,batch_ids,student_report)
report_card.report_card.select{|r| r[:batch_id] == student.batch.id}.first[:batch_combined_report] = Hash.new
report_card.report_card.select{|r| r[:batch_id] == student.batch.id}.first[:batch_combined_report] = self.prepare_combined_marksheet(student,student.batch.id.to_a,student_report)
report_card.save
else
exam_report.destroy
report_card = ExamReport.new(:student_id => student.id,:report_card => report_array)
report_card.save
report_card.report_card.select{|r| r[:batch_id] == student.batch.id}.first[:combined_report] = Hash.new
report_card.report_card.select{|r| r[:batch_id] == student.batch.id}.first[:combined_report] = self.prepare_combined_marksheet(student,batch_ids,student_report)
report_card.report_card.select{|r| r[:batch_id] == student.batch.id}.first[:batch_combined_report] = Hash.new
report_card.report_card.select{|r| r[:batch_id] == student.batch.id}.first[:batch_combined_report] = self.prepare_combined_marksheet(student,student.batch.id.to_a,student_report)
report_card.save
end
else
unless exam_report.nil?
if exam_report.report_card.select{|report| report[:batch_id] == student.batch.id}.empty?
exam_report.report_card << full_report
exam_report.save ///HERE I AM UNABLE TO SAVE IT
exam_report.report_card.select{|r| r[:batch_id] == student.batch.id}.first[:combined_report] = Hash.new
exam_report.report_card.select{|r| r[:batch_id] == student.batch.id}.first[:combined_report] = self.prepare_combined_marksheet(student,batch_ids,student_report)
exam_report.report_card.select{|r| r[:batch_id] == student.batch.id}.first[:batch_combined_report] = Hash.new
exam_report.report_card.select{|r| r[:batch_id] == student.batch.id}.first[:batch_combined_report] = self.prepare_combined_marksheet(student,student.batch.id.to_a,student_report)
exam_report.save
else
exam_report.report_card.delete_if{|report| report[:batch_id] == student.batch.id}
exam_report.report_card << full_report
exam_report.save
exam_report.report_card.select{|r| r[:batch_id] == student.batch.id}.first[:combined_report] = Hash.new
exam_report.report_card.select{|r| r[:batch_id] == student.batch.id}.first[:combined_report] = self.prepare_combined_marksheet(student,batch_ids,student_report)
exam_report.report_card.select{|r| r[:batch_id] == student.batch.id}.first[:batch_combined_report] = Hash.new
exam_report.report_card.select{|r| r[:batch_id] == student.batch.id}.first[:batch_combined_report] = self.prepare_combined_marksheet(student,student.batch.id.to_a,student_report)
exam_report.save
end
else
report_card = ExamReport.new(:student_id => student.id,:report_card => report_array)
end
end
end
end
end
No method error undefined method `each' for nil:NilClass
NoMethodError (undefined method `each' for nil:NilClass):
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/1.8/yaml/rubytypes.rb:40:in `to_yaml'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/1.8/yaml/rubytypes.rb:39:in `map'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/1.8/yaml/rubytypes.rb:39:in `to_yaml'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/1.8/yaml.rb:391:in `call'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/1.8/yaml.rb:391:in `emit'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/1.8/yaml.rb:391:in `quick_emit'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/1.8/yaml/rubytypes.rb:38:in `to_yaml'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/1.8/yaml/rubytypes.rb:18:in `node_export'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/1.8/yaml/rubytypes.rb:18:in `add'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/1.8/yaml/rubytypes.rb:18:in `to_yaml'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/1.8/yaml/rubytypes.rb:17:in `each'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/1.8/yaml/rubytypes.rb:17:in `to_yaml'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/1.8/yaml/rubytypes.rb:16:in `map'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/1.8/yaml/rubytypes.rb:16:in `to_yaml'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/1.8/yaml.rb:391:in `call'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/1.8/yaml.rb:391:in `emit'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/1.8/yaml.rb:391:in `quick_emit'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/1.8/yaml/rubytypes.rb:15:in `to_yaml'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/1.8/yaml/rubytypes.rb:18:in `node_export'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/1.8/yaml/rubytypes.rb:18:in `add'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/1.8/yaml/rubytypes.rb:18:in `to_yaml'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/1.8/yaml/rubytypes.rb:17:in `each'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/1.8/yaml/rubytypes.rb:17:in `to_yaml'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/1.8/yaml/rubytypes.rb:16:in `map'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/1.8/yaml/rubytypes.rb:16:in `to_yaml'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/1.8/yaml.rb:391:in `call'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/1.8/yaml.rb:391:in `emit'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/1.8/yaml.rb:391:in `quick_emit'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/1.8/yaml/rubytypes.rb:15:in `to_yaml'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/1.8/yaml/rubytypes.rb:41:in `node_export'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/1.8/yaml/rubytypes.rb:41:in `add'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/1.8/yaml/rubytypes.rb:41:in `to_yaml'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/1.8/yaml/rubytypes.rb:40:in `each'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/1.8/yaml/rubytypes.rb:40:in `to_yaml'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/1.8/yaml/rubytypes.rb:39:in `map'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/1.8/yaml/rubytypes.rb:39:in `to_yaml'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/1.8/yaml.rb:391:in `call'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/1.8/yaml.rb:391:in `emit'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/1.8/yaml.rb:391:in `quick_emit'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/1.8/yaml/rubytypes.rb:38:in `to_yaml'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/1.8/yaml/rubytypes.rb:110:in `node_export'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/1.8/yaml/rubytypes.rb:110:in `add'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/1.8/yaml/rubytypes.rb:110:in `to_yaml'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/1.8/yaml/rubytypes.rb:109:in `each'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/1.8/yaml/rubytypes.rb:109:in `to_yaml'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/1.8/yaml/rubytypes.rb:108:in `seq'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/1.8/yaml/rubytypes.rb:108:in `to_yaml'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/1.8/yaml.rb:391:in `call'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/1.8/yaml.rb:391:in `emit'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/1.8/yaml.rb:391:in `quick_emit'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/1.8/yaml/rubytypes.rb:107:in `to_yaml'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/1.8/yaml/rubytypes.rb:41:in `node_export'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/1.8/yaml/rubytypes.rb:41:in `add'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/1.8/yaml/rubytypes.rb:41:in `to_yaml'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/1.8/yaml/rubytypes.rb:40:in `each'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/1.8/yaml/rubytypes.rb:40:in `to_yaml'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/1.8/yaml/rubytypes.rb:39:in `map'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/1.8/yaml/rubytypes.rb:39:in `to_yaml'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/1.8/yaml.rb:391:in `call'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/1.8/yaml.rb:391:in `emit'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/1.8/yaml.rb:391:in `quick_emit'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/1.8/yaml/rubytypes.rb:38:in `to_yaml'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/1.8/yaml/rubytypes.rb:41:in `node_export'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/1.8/yaml/rubytypes.rb:41:in `add'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/1.8/yaml/rubytypes.rb:41:in `to_yaml'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/1.8/yaml/rubytypes.rb:40:in `each'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/1.8/yaml/rubytypes.rb:40:in `to_yaml'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/1.8/yaml/rubytypes.rb:39:in `map'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/1.8/yaml/rubytypes.rb:39:in `to_yaml'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/1.8/yaml.rb:391:in `call'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/1.8/yaml.rb:391:in `emit'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/1.8/yaml.rb:391:in `quick_emit'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/1.8/yaml/rubytypes.rb:38:in `to_yaml'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/1.8/yaml/rubytypes.rb:110:in `node_export'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/1.8/yaml/rubytypes.rb:110:in `add'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/1.8/yaml/rubytypes.rb:110:in `to_yaml'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/1.8/yaml/rubytypes.rb:109:in `each'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/1.8/yaml/rubytypes.rb:109:in `to_yaml'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/1.8/yaml/rubytypes.rb:108:in `seq'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/1.8/yaml/rubytypes.rb:108:in `to_yaml'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/1.8/yaml.rb:391:in `call'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/1.8/yaml.rb:391:in `emit'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/1.8/yaml.rb:391:in `quick_emit'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/1.8/yaml/rubytypes.rb:107:in `to_yaml'
app/models/exam_report.rb:89:in `generate_normal_report'
app/models/exam_report.rb:15:in `each'
app/models/exam_report.rb:15:in `generate_normal_report'
app/models/exam_report.rb:7:in `each'
app/models/exam_report.rb:7:in `generate_normal_report'
app/controllers/exam_reports_controller.rb:73:in `normal_report_generation'
passenger (3.0.9) lib/phusion_passenger/rack/request_handler.rb:96:in `process_request'
passenger (3.0.9) lib/phusion_passenger/abstract_request_handler.rb:513:in `accept_and_process_next_request'
passenger (3.0.9) lib/phusion_passenger/abstract_request_handler.rb:274:in `main_loop'
passenger (3.0.9) lib/phusion_passenger/classic_rails/application_spawner.rb:321:in `start_request_handler'
passenger (3.0.9) lib/phusion_passenger/classic_rails/application_spawner.rb:275:in `send'
passenger (3.0.9) lib/phusion_passenger/classic_rails/application_spawner.rb:275:in `handle_spawn_application'
passenger (3.0.9) lib/phusion_passenger/utils.rb:479:in `safe_fork'
passenger (3.0.9) lib/phusion_passenger/classic_rails/application_spawner.rb:270:in `handle_spawn_application'
passenger (3.0.9) lib/phusion_passenger/abstract_server.rb:357:in `__send__'
passenger (3.0.9) lib/phusion_passenger/abstract_server.rb:357:in `server_main_loop'
passenger (3.0.9) lib/phusion_passenger/abstract_server.rb:206:in `start_synchronously'
passenger (3.0.9) lib/phusion_passenger/abstract_server.rb:180:in `start'
passenger (3.0.9) lib/phusion_passenger/classic_rails/application_spawner.rb:149:in `start'
passenger (3.0.9) lib/phusion_passenger/spawn_manager.rb:219:in `spawn_rails_application'
passenger (3.0.9) lib/phusion_passenger/abstract_server_collection.rb:132:in `lookup_or_add'
passenger (3.0.9) lib/phusion_passenger/spawn_manager.rb:214:in `spawn_rails_application'
passenger (3.0.9) lib/phusion_passenger/abstract_server_collection.rb:82:in `synchronize'
passenger (3.0.9) lib/phusion_passenger/abstract_server_collection.rb:79:in `synchronize'
passenger (3.0.9) lib/phusion_passenger/spawn_manager.rb:213:in `spawn_rails_application'
passenger (3.0.9) lib/phusion_passenger/spawn_manager.rb:132:in `spawn_application'
passenger (3.0.9) lib/phusion_passenger/spawn_manager.rb:275:in `handle_spawn_application'
passenger (3.0.9) lib/phusion_passenger/abstract_server.rb:357:in `__send__'
passenger (3.0.9) lib/phusion_passenger/abstract_server.rb:357:in `server_main_loop'
passenger (3.0.9) lib/phusion_passenger/abstract_server.rb:206:in `start_synchronously'
passenger (3.0.9) helper-scripts/passenger-spawn-server:99
-- I am getting this bellow error
This is my code(method):
def self.generate_normal_report(batch_ids)
batches = Batch.find(:all,:conditions => {:id => batch_ids},:select => "id")
batches.each do |batch|
exam_groups_main = batch.exam_groups
exam_scores_main = exam_groups_main.map(&:exams).flatten.compact.map(&:exam_scores).flatten.compact
archived_exam_scores_main = exam_groups_main.map(&:exams).flatten.compact.map(&:archived_exam_scores).flatten.compact
terms = batch.terms.map{|term| term.id.to_s}
students = batch.students.all(:select => "id,first_name,batch_id,user_id")
student_ids = students.map(&:id)
archived_students = ArchivedStudent.all(:conditions => {:batch_id => batch.id},:select => "id,first_name,batch_id,former_id")
student_ids.each do |student_id|
student_report = Hash.new
student = Student.find(student_id)
student_report[:term_report] = Hash.new
term_report = Hash.new
terms.each do |term|
exam_group_report = Hash.new
exam_groups = exam_groups_main.select{|exam_group| exam_group.term_id.to_s == term.to_s }
exam_groups.each do |exam_group|
exam_group_report[exam_group.id.to_s.to_sym] = Hash.new
exam_group_report[exam_group.id.to_s.to_sym][:exam_report] = Array.new
exams = exam_group.exams
exam_report = Hash.new
exams.each do |exam|
student_exam_score = exam_scores_main.select{|score| score.exam_id == exam.id and score.student_id == student.id}.first
student_mark = student_exam_score.nil? ? 0 :student_exam_score.marks
all_archived_score = archived_exam_scores_main.select{|score| score.exam_id == exam.id}.flatten.compact.map(&:marks)
all_normal_score = exam_scores_main.select{|score| score.exam_id == exam.id }.flatten.compact.map(&:marks)
all_score = (all_archived_score + all_normal_score).compact.sort.reverse
exam_position = all_score.index(student_mark).nil? ? all_score.size : (all_score.index(student_mark) + 1)
exam_report = {:subject_id => exam.subject.id,:exam_id => exam.id,:marks => student_mark,:maximum_marks => exam.maximum_marks,:exam_position => exam_position}
if all_score.size == 0
exam_report[:exam_average] = 0
else
exam_report[:exam_average] = (all_score.sum.to_f / all_score.size)
end
exam_group_report[exam_group.id.to_s.to_sym][:exam_report] << exam_report
end
class_information = ExamReport.calculate_class_position_and_class_average(exam_group,student,students,archived_students)
exam_group_report[exam_group.id.to_s.to_sym][:exam_group_position] = class_information[:rank]
exam_group_report[exam_group.id.to_s.to_sym][:exam_group_average] = class_information[:class_average]
exam_group_report[exam_group.id.to_s.to_sym][:exam_group_total] = class_information[:student_mark]
end
term_report[term.to_sym] = Hash.new
term_information = ExamReport.calculate_term_position_and_term_average(term,exam_groups,student,students,archived_students)
term_report[term.to_sym][:exam_group_report] = exam_group_report
term_report[term.to_sym][:term_position] = term_information[:rank]
term_report[term.to_sym][:term_average] = term_information[:class_average]
term_report[term.to_sym][:term_total] = term_information[:student_mark]
end
student_report[:term_report] = term_report
annual_information = ExamReport.calculate_annual_position_and_annual_average(student,students,archived_students,batch.terms)
student_report[:annual_position] = annual_information[:rank]
student_report[:annual_average] = annual_information[:class_average]
student_report[:annual_total] = annual_information[:student_mark]
exam_report = ExamReport.find_by_student_id(student_id)
full_report = Hash.new
full_report[:batch_id] = student.batch_id
full_report[:report] = student_report
report_array = Array.new
report_array << full_report
if student.graduated_batches.empty?
if exam_report.nil?
report_card = ExamReport.new(:student_id => student.id,:report_card => report_array)
report_card.save
report_card.report_card.select{|r| r[:batch_id] == student.batch.id}.first[:combined_report] = Hash.new
report_card.report_card.select{|r| r[:batch_id] == student.batch.id}.first[:combined_report] = self.prepare_combined_marksheet(student,batch_ids,student_report)
report_card.report_card.select{|r| r[:batch_id] == student.batch.id}.first[:batch_combined_report] = Hash.new
report_card.report_card.select{|r| r[:batch_id] == student.batch.id}.first[:batch_combined_report] = self.prepare_combined_marksheet(student,student.batch.id.to_a,student_report)
report_card.save
else
exam_report.destroy
report_card = ExamReport.new(:student_id => student.id,:report_card => report_array)
report_card.save
report_card.report_card.select{|r| r[:batch_id] == student.batch.id}.first[:combined_report] = Hash.new
report_card.report_card.select{|r| r[:batch_id] == student.batch.id}.first[:combined_report] = self.prepare_combined_marksheet(student,batch_ids,student_report)
report_card.report_card.select{|r| r[:batch_id] == student.batch.id}.first[:batch_combined_report] = Hash.new
report_card.report_card.select{|r| r[:batch_id] == student.batch.id}.first[:batch_combined_report] = self.prepare_combined_marksheet(student,student.batch.id.to_a,student_report)
report_card.save
end
else
unless exam_report.nil?
if exam_report.report_card.select{|report| report[:batch_id] == student.batch.id}.empty?
exam_report.report_card << full_report
exam_report.save ///HERE I AM UNABLE TO SAVE IT
exam_report.report_card.select{|r| r[:batch_id] == student.batch.id}.first[:combined_report] = Hash.new
exam_report.report_card.select{|r| r[:batch_id] == student.batch.id}.first[:combined_report] = self.prepare_combined_marksheet(student,batch_ids,student_report)
exam_report.report_card.select{|r| r[:batch_id] == student.batch.id}.first[:batch_combined_report] = Hash.new
exam_report.report_card.select{|r| r[:batch_id] == student.batch.id}.first[:batch_combined_report] = self.prepare_combined_marksheet(student,student.batch.id.to_a,student_report)
exam_report.save
else
exam_report.report_card.delete_if{|report| report[:batch_id] == student.batch.id}
exam_report.report_card << full_report
exam_report.save
exam_report.report_card.select{|r| r[:batch_id] == student.batch.id}.first[:combined_report] = Hash.new
exam_report.report_card.select{|r| r[:batch_id] == student.batch.id}.first[:combined_report] = self.prepare_combined_marksheet(student,batch_ids,student_report)
exam_report.report_card.select{|r| r[:batch_id] == student.batch.id}.first[:batch_combined_report] = Hash.new
exam_report.report_card.select{|r| r[:batch_id] == student.batch.id}.first[:batch_combined_report] = self.prepare_combined_marksheet(student,student.batch.id.to_a,student_report)
exam_report.save
end
else
report_card = ExamReport.new(:student_id => student.id,:report_card => report_array)
end
end
end
end
end
No method error undefined method `each' for nil:NilClass
NoMethodError (undefined method `each' for nil:NilClass):
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/1.8/yaml/rubytypes.rb:40:in `to_yaml'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/1.8/yaml/rubytypes.rb:39:in `map'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/1.8/yaml/rubytypes.rb:39:in `to_yaml'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/1.8/yaml.rb:391:in `call'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/1.8/yaml.rb:391:in `emit'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/1.8/yaml.rb:391:in `quick_emit'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/1.8/yaml/rubytypes.rb:38:in `to_yaml'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/1.8/yaml/rubytypes.rb:18:in `node_export'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/1.8/yaml/rubytypes.rb:18:in `add'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/1.8/yaml/rubytypes.rb:18:in `to_yaml'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/1.8/yaml/rubytypes.rb:17:in `each'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/1.8/yaml/rubytypes.rb:17:in `to_yaml'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/1.8/yaml/rubytypes.rb:16:in `map'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/1.8/yaml/rubytypes.rb:16:in `to_yaml'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/1.8/yaml.rb:391:in `call'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/1.8/yaml.rb:391:in `emit'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/1.8/yaml.rb:391:in `quick_emit'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/1.8/yaml/rubytypes.rb:15:in `to_yaml'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/1.8/yaml/rubytypes.rb:18:in `node_export'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/1.8/yaml/rubytypes.rb:18:in `add'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/1.8/yaml/rubytypes.rb:18:in `to_yaml'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/1.8/yaml/rubytypes.rb:17:in `each'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/1.8/yaml/rubytypes.rb:17:in `to_yaml'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/1.8/yaml/rubytypes.rb:16:in `map'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/1.8/yaml/rubytypes.rb:16:in `to_yaml'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/1.8/yaml.rb:391:in `call'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/1.8/yaml.rb:391:in `emit'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/1.8/yaml.rb:391:in `quick_emit'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/1.8/yaml/rubytypes.rb:15:in `to_yaml'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/1.8/yaml/rubytypes.rb:41:in `node_export'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/1.8/yaml/rubytypes.rb:41:in `add'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/1.8/yaml/rubytypes.rb:41:in `to_yaml'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/1.8/yaml/rubytypes.rb:40:in `each'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/1.8/yaml/rubytypes.rb:40:in `to_yaml'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/1.8/yaml/rubytypes.rb:39:in `map'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/1.8/yaml/rubytypes.rb:39:in `to_yaml'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/1.8/yaml.rb:391:in `call'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/1.8/yaml.rb:391:in `emit'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/1.8/yaml.rb:391:in `quick_emit'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/1.8/yaml/rubytypes.rb:38:in `to_yaml'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/1.8/yaml/rubytypes.rb:110:in `node_export'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/1.8/yaml/rubytypes.rb:110:in `add'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/1.8/yaml/rubytypes.rb:110:in `to_yaml'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/1.8/yaml/rubytypes.rb:109:in `each'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/1.8/yaml/rubytypes.rb:109:in `to_yaml'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/1.8/yaml/rubytypes.rb:108:in `seq'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/1.8/yaml/rubytypes.rb:108:in `to_yaml'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/1.8/yaml.rb:391:in `call'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/1.8/yaml.rb:391:in `emit'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/1.8/yaml.rb:391:in `quick_emit'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/1.8/yaml/rubytypes.rb:107:in `to_yaml'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/1.8/yaml/rubytypes.rb:41:in `node_export'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/1.8/yaml/rubytypes.rb:41:in `add'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/1.8/yaml/rubytypes.rb:41:in `to_yaml'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/1.8/yaml/rubytypes.rb:40:in `each'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/1.8/yaml/rubytypes.rb:40:in `to_yaml'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/1.8/yaml/rubytypes.rb:39:in `map'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/1.8/yaml/rubytypes.rb:39:in `to_yaml'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/1.8/yaml.rb:391:in `call'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/1.8/yaml.rb:391:in `emit'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/1.8/yaml.rb:391:in `quick_emit'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/1.8/yaml/rubytypes.rb:38:in `to_yaml'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/1.8/yaml/rubytypes.rb:41:in `node_export'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/1.8/yaml/rubytypes.rb:41:in `add'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/1.8/yaml/rubytypes.rb:41:in `to_yaml'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/1.8/yaml/rubytypes.rb:40:in `each'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/1.8/yaml/rubytypes.rb:40:in `to_yaml'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/1.8/yaml/rubytypes.rb:39:in `map'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/1.8/yaml/rubytypes.rb:39:in `to_yaml'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/1.8/yaml.rb:391:in `call'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/1.8/yaml.rb:391:in `emit'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/1.8/yaml.rb:391:in `quick_emit'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/1.8/yaml/rubytypes.rb:38:in `to_yaml'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/1.8/yaml/rubytypes.rb:110:in `node_export'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/1.8/yaml/rubytypes.rb:110:in `add'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/1.8/yaml/rubytypes.rb:110:in `to_yaml'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/1.8/yaml/rubytypes.rb:109:in `each'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/1.8/yaml/rubytypes.rb:109:in `to_yaml'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/1.8/yaml/rubytypes.rb:108:in `seq'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/1.8/yaml/rubytypes.rb:108:in `to_yaml'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/1.8/yaml.rb:391:in `call'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/1.8/yaml.rb:391:in `emit'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/1.8/yaml.rb:391:in `quick_emit'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/1.8/yaml/rubytypes.rb:107:in `to_yaml'
app/models/exam_report.rb:89:in `generate_normal_report'
app/models/exam_report.rb:15:in `each'
app/models/exam_report.rb:15:in `generate_normal_report'
app/models/exam_report.rb:7:in `each'
app/models/exam_report.rb:7:in `generate_normal_report'
app/controllers/exam_reports_controller.rb:73:in `normal_report_generation'
passenger (3.0.9) lib/phusion_passenger/rack/request_handler.rb:96:in `process_request'
passenger (3.0.9) lib/phusion_passenger/abstract_request_handler.rb:513:in `accept_and_process_next_request'
passenger (3.0.9) lib/phusion_passenger/abstract_request_handler.rb:274:in `main_loop'
passenger (3.0.9) lib/phusion_passenger/classic_rails/application_spawner.rb:321:in `start_request_handler'
passenger (3.0.9) lib/phusion_passenger/classic_rails/application_spawner.rb:275:in `send'
passenger (3.0.9) lib/phusion_passenger/classic_rails/application_spawner.rb:275:in `handle_spawn_application'
passenger (3.0.9) lib/phusion_passenger/utils.rb:479:in `safe_fork'
passenger (3.0.9) lib/phusion_passenger/classic_rails/application_spawner.rb:270:in `handle_spawn_application'
passenger (3.0.9) lib/phusion_passenger/abstract_server.rb:357:in `__send__'
passenger (3.0.9) lib/phusion_passenger/abstract_server.rb:357:in `server_main_loop'
passenger (3.0.9) lib/phusion_passenger/abstract_server.rb:206:in `start_synchronously'
passenger (3.0.9) lib/phusion_passenger/abstract_server.rb:180:in `start'
passenger (3.0.9) lib/phusion_passenger/classic_rails/application_spawner.rb:149:in `start'
passenger (3.0.9) lib/phusion_passenger/spawn_manager.rb:219:in `spawn_rails_application'
passenger (3.0.9) lib/phusion_passenger/abstract_server_collection.rb:132:in `lookup_or_add'
passenger (3.0.9) lib/phusion_passenger/spawn_manager.rb:214:in `spawn_rails_application'
passenger (3.0.9) lib/phusion_passenger/abstract_server_collection.rb:82:in `synchronize'
passenger (3.0.9) lib/phusion_passenger/abstract_server_collection.rb:79:in `synchronize'
passenger (3.0.9) lib/phusion_passenger/spawn_manager.rb:213:in `spawn_rails_application'
passenger (3.0.9) lib/phusion_passenger/spawn_manager.rb:132:in `spawn_application'
passenger (3.0.9) lib/phusion_passenger/spawn_manager.rb:275:in `handle_spawn_application'
passenger (3.0.9) lib/phusion_passenger/abstract_server.rb:357:in `__send__'
passenger (3.0.9) lib/phusion_passenger/abstract_server.rb:357:in `server_main_loop'
passenger (3.0.9) lib/phusion_passenger/abstract_server.rb:206:in `start_synchronously'
passenger (3.0.9) helper-scripts/passenger-spawn-server:99
You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email to rubyonrails-talk+unsubscribe@googlegroups.com.
To post to this group, send email to rubyonrails-talk@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/rubyonrails-talk/621af32a-f498-4869-a6af-036d6af36ce6%40googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment