我想从后端创建一个运送方法,从前端我能够实现它。但是在我运行这个时候的后端
Spree::ShippingMethod.create(name: "Name 1", zone_id: 1).errors.full_messages
我收到错误
["Calculator can't be blank"]
似乎需要以某种方式创建Spree :: Calculator。我是Spree的初学者,任何帮助都会有所帮助。
答案 0 :(得分:1)
因此,您需要指定# app/forms.py
from .widgets import SelectPlus
class SimpleForm(ModelForm):
my_field = forms.ExampleField(widget=SelectPlus())
。
Spree附带了一些计算器:
您也可以按照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我使用了这个。