【问题标题】:Rails: How to handle data when there's an error on createRails:创建错误时如何处理数据
【发布时间】:2011-01-05 18:51:01
【问题描述】:

所以我有一个订阅表单,其中用户同时创建一个新帐户并订阅月度计划。

所以他们正在输入用户名、电子邮件、密码和所有常用的信用卡/账单信息。

但我遇到的问题是,他们不小心输入了错误的信用卡号码……最好的处理方法是什么?

我需要先创建用户帐户,这样我才能拥有一个数据库行 ID(用于第三方计费服务),但由于我已经在我的 create 方法中一口气处理了所有这些,如果用户更正他们的卡信息并重新提交,它告诉他们该帐户已经存在(因为实际上已经创建了用户帐户)。

那么,这里的问题是您将如何处理这个问题?您会将他们带到一个计费数据的错误页面吗?或者还有什么?不知道最好的处理方法是什么......

【问题讨论】:

    标签: ruby-on-rails standards billing


    【解决方案1】:

    不知道任何标准,但我确信最好的方法是在计费服务检查失败时删除新创建的用户帐户(created_at 字段可能有助于检测超时)。

    这种机制是通过database transactions 实现的,在Rails 中不需要太多努力。但请确保您没有在数据库上使用排他锁定。

    【讨论】:

      【解决方案2】:

      在我看来,你可以用两种不同的方式来处理这个问题

      1) 一切都验证成功后才保存数据。 您可以使用自定义验证来检查信用卡。 见 sn-ps.dzone.com/posts/show/5266

      2) 使用两种不同的模型(用户和信用卡)并使用 find_or_create (实际上您也可以将 find_or_create 与一个模型一起使用) 见http://blogs.law.harvard.edu/lianaleahy/2008/05/19/find_or_create/

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-01-01
        • 2012-02-11
        • 2019-07-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多