【发布时间】:2017-02-04 23:21:34
【问题描述】:
我有一个 Rails 5 应用程序。
我有一个带有 create 方法的订单控制器,它保存来自表单提交的新订单。订单的一个字段是邮政编码,在我的创建方法中,我使用邮政编码来计算运费。
def create
@order = Order.new(order_params)
shipping = calculateShipping(@order.zip)
...
end
我需要每个订单的邮政编码,因此我的订单模型中有一个验证
validates :zip, presence: true
如果我现在提交没有邮政编码的订单,我会从 calculateShipping 收到错误,因为它缺少邮政编码。
- 我认为验证首先运行,如果表单无效,甚至不会调用 create 方法。为什么我仍然收到错误?我能做些什么来解决它?
- 我应该将运费计算放入模型中吗?那会是什么样子?
谢谢!
【问题讨论】:
标签: ruby-on-rails validation ruby-on-rails-5