このページのドキュメントに従ってください... http://guides.spreecommerce.com/developer/calculators.html
models/spree/calculators/ にクラスを作成しました
module Spree
class Calculator::ZipTax < Calculator
def self.description
"Calculates Tax Rates From Zipcode in TaxRates Table"
end
def compute(computable)
case computable
when Spree::Order
compute_order(computable)
when Spree::LineItem
compute_line_item(computable)
end
end
def compute_order(order)
zipcode = order.bill_address.zipcode[0,5]
zip = TaxTable.where(:zipcode => zipcode).first
if(zip.present?)
rate = zip.combined_rate
order.line_items.sum(&:total) * rate
else
0
end
end
end
end
そして、initializers/spree.rb に以下を追加しました:
config = Rails.application.config
config.spree.calculators.tax_rates << Spree::Calculator::ZipTax
しかし、Rails を起動できません。initializer/spree.rb ファイルで nil:NilClass (NoMethodError) に対して未定義のメソッド `<<' を取得します。
カスタム電卓を登録するにはどうすればよいですか? Spree 1.3.2 を使用。