2015-12-14 56 views
0

我對ROR並不是很有經驗,是在軌道應用程序中創建運輸選項的乾淨方式嗎?它是一個乾淨的方式來創建軌道的運輸選項?

在我orders_form剛剛將該代碼:

<% if @order.subtotal >= 30 %> 
    (free shipping) 
    <%= f.radio_button(:shipping, "0.00", :checked => "checked", class: "hidden_field") %><br/> 
<% else %> 
    <p><strong>Shipping options :</strong></p> 
    <%= f.label 'economy' %> 
    <%= f.radio_button(:shipping, "3.00", :checked => "checked") %><br/> 
    <%= f.label 'fast' %> 
    <%= f.radio_button(:shipping, "5.00") %> 
<% end %> 

似乎太簡單了,我是正確的。

回答

2

一切都很好,但最好將所有這些邏輯放在模型中,而不是視圖中。事情是這樣的:

# order.rb 
class Order < ActiveRecord::Base 
    FREE_SHIPPING_THRESHOLD = 30.0 
    ECONOMY_SHIPPING_PRICE = 3.0 
    FAST_SHIPPING_PRICE = 5.0 

    ... 

    def eligible_for_free_shipping? 
    subtotal >= FREE_SHIPPING_THRESHOLD 
    end 
end 

然後<% if @order.subtotal >= 30 %>成爲<% if @order.eligible_for_free_shipping? %>和代替硬編碼的意見海運價格您使用Order::ECONOMY_SHIPPING_PRICEOrder::FAST_SHIPPING_PRICE

使用這種方法,您將在一個地方完成所有訂單運輸設置,因此當您想要更改某些內容時,您不需要瀏覽多個文件。

+0

好的,我明白了,謝謝! –

相關問題