有時候要將前端要求的Filter加入到程式裡面,當初我會寫成
if params['filter'] == 1 DB[:table].where(:column => :a).join(:table_c,:id => :table_c_id).order(:column) else DB[:table].where(:column => :a).join(:table_b,:id => :table_b_id).order(Sequel.desc(:column)) end
有時候東西一多整個版面會很亂,後來就發現原來Dataset可以再單獨做Filter
dataset = DB[:table].where(:column => :a) if params['filter'] == 1 dataset = dataset.join(:table_c,:id => :table_c_id).order(:column) else dataset = dataset.join(:table_b,:id => :table_b_id).order(Sequel.desc(:column)) end
有時候可以將近百行的CODE濃縮成二三十行,一點小發現