Rubyでコードをリファクタリングする必要があります。 Order.rbで このコードをリファクタリングして(レール上のルビー)どのように修正するには?
私が持っている:- price_range = [ [0,nil,"lowest"], [1,500,"lower"], [501,1000,"low"], [1001,5000,"high"], [5001,10000,"higher"], [10000,">","highest"] ]
- (0..5).each do |i|
tr
- if i == 0
th= "#{i}"
- else
th= "#{price_range[i][0]} - #{price_range[i][1]}"
td.text-right= Order.filter_price(price_range[i][2]).count
span.divider
= with_unit (Order.filter_price(price_range[i][2]).count.to_f/Order.count.to_f * 100.0).to_i, "%"
td.text-right
= Order.filter_price(price_range[i][2]).select{|o| o.replied?}.count
span.divider
= with_unit (Order.filter_price(price_range[i][2]).select{|o| o.replied?}.count.to_f/Order.all.select{|o| o.replied?}.count.to_f * 100.0).to_i, "%"
span.divider
= with_unit (Order.filter_price(price_range[i][2]).select{|o| o.replied?}.count.to_f/Order.filter_price(price_range[i][2]).count.to_f * 100.0).to_i, "%"
td.text-right
= Order.paid.filter_price(price_range[i][2]).count
span.divider
= with_unit (Order.paid.filter_price(price_range[i][2]).count.to_f/Order.paid.count.to_f * 100.0).to_i, "%"
span.margin
私は、コードクリーナーを作るためにprice_range配列を削除し、まだ同じを取得できます:
ビューでdef self.filter_price range
case range.to_sym
when :highest
self.where("price > 10000")
when :higher
self.where(price: 5001..10000)
when :high
self.where(price: 1001..5000)
when :low
self.where(price: 501..1000)
when :lower
self.where(price: 1..500)
when :lowest
self.where(price: [0,nil])
else
self
end
end
、私はこのスリムなHTMLを持っています出力結果?
誰でもこのお手伝いをすることができます、ありがとうございます。上記
| Price | request | reply | Paid |
----------------------------------------------
| 0 | 68 | 19/15%/27% | 5/6% |
---------------------------------------------
|1 - 500 | 19 | .... | .... |
----------------------------------------------
|.... | .... | .... | .... |
HTMLコードは、各行をループするためのものである:ここ
は、ビューに表示されるものです。
ビューには何がレンダリングされますか? 例を挙げることはできますか? – tekina