В рубином приложении рельсы, у меня есть таблица с именем test_details
со следующими полями:Рубин на Rails: сложный расчет запрос
id,
profileId,
testName,
testId,
dateCovered,
levelCompleted,
userResult,
unit
здесь levelCompleted
может иметь одно из пяти значений:
l1, l2, l3, l4, l5
Я хочу создать отчет для подсчета количества уровней на основе testName, а его процент
так:
testID ll l2 l3 l4 l5
-------------------------------------------------------
test1 25(25%) 45(35.2%) 12(10%) 12(10%) 15(12%)
test2 25(25%) 45(35.2%) 12(10%) 12(10%) 15(12%)
test3 58(25%) 445(35.2%) 145(10%) 42(10%) 25(12%)
(значения и процент не точные значения)
, как я могу сделать это в контроллере и посмотреть?
Мой код контроллера:
@all_tests = TestDetails.count
@test_details = TestDetails.select("DISTINCT(testName)")
puts(@test_details)
@test_details.each do | test_details |
@test_name = test_details["testName"];
@level1_total = TestDetails.where("testName =? and levelCompleted =? and dateCovered is ?",test_details["testName"],1,nil).count
@level1_total_percent = (@level1_total/@all_tests.to_f)*100
@level2_total = TestDetails.where("testName =? and levelCompleted =? and dateCovered is ?",test_details["testName"],2,nil).count
@level2_total_percent = (@level2_total/@all_tests.to_f)*100
@level3_total = TestDetails.where("testName =? and levelCompleted =? and dateCovered is ?",test_details["testName"],3,nil).count
@level3_total_percent = (@level3_total/@all_tests.to_f)*100
@level4_total = TestDetails.where("testName =? and levelCompleted =? and dateCovered is ?",test_details["testName"],4,nil).count
@level4_total_percent = (@level4_total/@all_tests.to_f)*100
@level5_total = TestDetails.where("testName =? and levelCompleted =? and dateCovered is ?",test_details["testName"],5,nil).count
@level5_total_percent = (@level5_total/@all_tests.to_f)*100
конец
@m_x Я хочу иметь представление, подобное приведенной выше структуре таблицы. – SHANib
Хорошо, я попробую после работы. cu –
@m_x ok .. спасибо ... Я также пытаюсь выполнить некоторые ауты .. – SHANib