javascript - 如何在提交表格之前以 Rails 表格进行条纹收费

标签 javascript ruby-on-rails mongoid

我有一个由用户 A 填写的表单。如果 userA 说他们将付款,那么我希望在表单中(在提交表单之前)在 userA 选择他们将付款的下拉菜单旁边出现一个收费按钮(我猜是 JavaScript?)。此外,如果付款费用未完成,则表格本身将不会提交。如果下拉菜单设置为 userB will pay(其他用户类型),则表单将提交。

我不确定我可以用什么来做到这一点,我认为是 javascript,但我知道 ruby​​ 没有太多 javascript。此外,费用必须从表格上的第二个下拉菜单中获取费用金额。因此,收费按钮需要从预先提交的表格中提取该金额。再次让我意识到这可以通过 javascript 来完成。

我的条纹按钮有 JavaScript,但需要一些代码才能在选择下拉列表时显示该按钮,并从表单中的其他下拉列表中提取金额。

以下是实际流程的示例:

提交表单 -> 检查属性:x -> 如果属性 X 为假,则创建记录 || Elsif Attr True -> 从 Attrs 获取付款金额:Y,渲染付款 View 显示 Attrs Y 作为应付金额 -> 提交付款表单 -> 成功收费 -> 创建原始记录

最佳答案

如果您需要在应用程序中进行授权,则不应依赖 JavaScript。用户可以轻松规避此问题。

我认为您的想法有点错误 - 您不会在同一个浏览器 session 中拥有两个用户,也不会让某人打开浏览器窗口坐着等待,直到主管批准他们的请求。这不是分时时代。

a really big computer

相反,您可以让非特权用户在提交表单时创建一个 PurchaseRequest。主管将收到通知并可以批准或取消购买请求。

在这种情况下,您是否希望球回滚到用户 1 取决于具体的用例,但根据我的经验,主管通常是持有公司卡的人。

当使用 stripe 或任何其他支付系统时,您提交付款,然后收到一个回调请求,告诉您付款是否成功。

  1. Joe 提交表单以创建请求
  2. Jane(主管)出去打高尔夫球,并在 3 天后批准了。
  3. Joe 收到一条通知,表明他现在可以支付请求。他点击支付按钮,请求就会转发到支付门户。
  4. 他提交付款,然后重定向回您的应用。在此操作中,您需要检查付款状态并相应地呈现 View 。

这是一个通用示例,您应该查看 Stripe 文档以了解他们推荐的流程。

关于javascript - 如何在提交表格之前以 Rails 表格进行条纹收费,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33249816/

相关文章:

javascript - 使用 Observables(DRY) 避免重复代码

javascript - 在 Angular 引导 datetimepicker 中禁用所有以前的日期

ruby-on-rails - 雾、Amazon S3 和 Carrierwave Rails 问题

ruby-on-rails - 使用 Carrierwave 从 Rails 控制台上传远程文件 url

javascript - 自定义文件输入

mongodb - 为什么 Mongoid 不在分片环境中将 slaveOk 发送到 mongos?

javascript - JavaScript 中的对象是否有唯一标识符?

javascript - jQuery ScrollTo 和 Chrome : Content flashes

ruby-on-rails - 带有 mongoid、devise、database_cleaner 的 rspec:ActiveRecord::ConnectionNotEstablished 错误

ruby-on-rails - 带有嵌入式文档的 Mongoid 急切加载