Rails 求教 Rails 取消订单需要填说明的实践

wuwx · August 02, 2015 · Last by marksloan replied at August 03, 2015 · 2143 hits

大概描述下我目前的情况,Order 订单模型,使用 state_machine 定义了一个 cancel 的 event 在 orders 控制器里,使用了一个 cancel 的方法,对应 put /orders/cancel 去调用他 也就是说暴露出来的 router 跟 cancel 有关的只有 cancel 一个 之前都是直接使用一个链接,直接指定 :method => :put 现在增加了一个需求,就是希望用户在取消订单的时候,还得输入为什么要取消订单的理由:) 这种情况下应该怎么设计比较好呢? 把输入页面设置为 get /orders/cancel,提交页面设置为 put /orders/cancel 还是输入页面直接放在 order 的 show 页面或者其他 js 方式弹出? 谢谢大家:)

传统 Rails 方式可以加入 edit 路由,或者其他名字提交 edit 表单就行。

不过最简单就 Javascript 了,监听用户点击'cancel'按钮,preventDefault, 跳出文本框和确认按钮,输入理由,确认后在表单里面加入理由项并提交。后端只需要在 cancel 里面接受 reason attribute 就可以了,无需其他改变。

强制的功能,不能用 js,因为用户关掉浏览器的 js 就能跳过了。

You need to Sign in before reply, if you don't have an account, please Sign up first.