从后端在spree中创建送货方式

时间:2018-01-14 15:00:29

标签: ruby-on-rails spree

我想从后端创建一个运送方法,从前端我能够实现它。但是在我运行这个时候的后端

Spree::ShippingMethod.create(name: "Name 1", zone_id: 1).errors.full_messages

我收到错误

["Calculator can't be blank"] 似乎需要以某种方式创建Spree :: Calculator。我是Spree的初学者,任何帮助都会有所帮助。

2 个答案:

答案 0 :(得分:1)

因此,您需要指定# app/forms.py from .widgets import SelectPlus class SimpleForm(ModelForm): my_field = forms.ExampleField(widget=SelectPlus())

Spree附带了一些计算器:

  • 施普雷::计算器:: DefaultTax
  • 施普雷::计算器::发货:: FlatRate

您也可以按照here说明创建一个,之后您可以通过这种方式创建Calculator

ShippingMethod或您想要的任何Spree::ShippingMethod.create(name: "Name 1", calculator: Spree::Calculator.first)

答案 1 :(得分:0)

正确的方法是: -

zone = Spree::Zone.find_by_name("North America")
shipping_method = Spree::ShippingMethod.new(name: "Pickup from Market", zone_id: zone.id)
shipping_method.calculator_type = "Spree::Calculator::FlatRate"
shipping_method.save!

我们可以指定任何类型的计算器代替calculator_type。因为我想要Flate Rate我使用了这个。