關於如何爲這個軌道控制器建立一個更好的循環的任何想法?寫這個循環的更好方法是什麼?
有時我在邏輯循環中有點迷路,所以我訴諸於尼安德特人的代碼。
def index
@step1_status = current_user.steps.pluck(:step1).first
@step2_status = current_user.steps.pluck(:step2).first
@step3_status = current_user.steps.pluck(:step3).first
@step4_status = current_user.steps.pluck(:step4).first
@step5_status = current_user.steps.pluck(:step5).first
@step6_status = current_user.steps.pluck(:step6).first
@step7_status = current_user.steps.pluck(:step7).first
@step8_status = current_user.steps.pluck(:step8).first
@step9_status = current_user.steps.pluck(:step9).first
if @step9_status == true
@task = Task.limit(1).order('sort_id ASC').where.not(:sort_id => ['1', '2', '3', '4', '5', '6', '7', '8', '9'])
elsif @step8_status == true
@task = Task.limit(1).order('sort_id ASC').where.not(:sort_id => ['1', '2', '3', '4', '5', '6', '7', '8'])
elsif @step7_status == true
@task = Task.limit(1).order('sort_id ASC').where.not(:sort_id => ['1', '2', '3', '4', '5', '6', '7'])
elsif @step6_status == true
@task = Task.limit(1).order('sort_id ASC').where.not(:sort_id => ['1', '2', '3', '4', '5', '6'])
elsif @step5_status == true
@task = Task.limit(1).order('sort_id ASC').where.not(:sort_id => ['1', '2', '3', '4', '5'])
elsif @step4_status == true
@task = Task.limit(1).order('sort_id ASC').where.not(:sort_id => ['1', '2', '3', '4'])
elsif @step3_status == true
@task = Task.limit(1).order('sort_id ASC').where.not(:sort_id => ['1', '2', '3'])
elsif @step2_status == true
@task = Task.limit(1).order('sort_id ASC').where.not(:sort_id => ['1', '2'])
elsif @step1_status == true
@task = Task.limit(1).order('sort_id ASC').where.not(:sort_id => '1')
else
@task = Task.limit(1).order('sort_id ASC')
end
end
感謝您的幫助!
爲了從中獲取不同的單個列,拔9次同一行(9個DB調用!)有什麼意義?爲什麼你不把這個'stepN'怪物變成一個散亂的表(即規範化它),所以你可以實際使用步數作爲數據,而不是「訴諸於neandertal代碼」來擺弄列名?這是故意通過設計完成的,還是這是一個設計監督? –
什麼循環?這裏沒有循環。 –
哈哈,我知道。這是狗屎。 – Jordan