【问题标题】:Rails: Credit Card Validator gem - need good example of how to use itRails: Credit Card Validator gem - 需要一个很好的例子来说明如何使用它
【发布时间】:2014-06-18 01:36:22
【问题描述】:

我希望使用信用卡验证器 gem 来验证信用卡号和类型。我对 Rails 还比较陌生,尽管我已经查看了 github 文档,但我仍在尝试找出如何最好地使用这个 gem。我需要在模型中添加一些代码吗?如果是这样,具体如何?我需要使用 validate_with 吗?

我已经进行了一些谷歌搜索,但似乎找不到任何关于如何最好地使用此 gem 以及将代码放在哪里的示例。

看来我的名声在这里受到了抨击:(

这就是我所做的。在我的信用卡模型中,我添加了以下行:

validates_with ValidateCreditCard

然后我创建了文件 lib/validate_credit_card.rb 如下:

class ValidateCreditCard < ActiveModel::Validator
  def validate(record)
    if !CreditCardValidator::Validator.valid?(record.card_number.to_s)
      record.errors[:base] << "The credit card number is not valid."
    end
  end
end

我还必须将以下行放入我的 config/application.rb

config.autoload_paths      += %W( #{config.root}/lib )

这似乎有效,但是,如果这是最好的方法吗?

此外,即使我在输入无效的信用卡号时可以看到错误消息,但信用卡字段并没有被红色包围,所以我需要查看整个错误[:base] 以及它是如何发生的有效。

希望得到一些反馈,说明这是进行此类验证的正确方法。

非常感谢。

【问题讨论】:

  • 这是一个编程论坛。当您提出问题时,通常希望您包括到目前为止您已经尝试过的内容以及为什么它没有奏效,最好包含代码 sn-ps 和错误日志。这样,人们就可以判断您的理解程度以及您提出问题的背景。
  • 很公平..我可以做到。我主要是在寻找实际使用这个宝石的最佳方式的方向。我尝试了无数次谷歌搜索,但找不到任何真实的例子。之后我将执行一些代码并进行更新。谢谢。

标签: ruby-on-rails credit-card


【解决方案1】:

这是我如何让它工作的。

我在信用卡模型中添加了以下几行:

validate :validate_credit_card

private

def validate_credit_card
  if !CreditCardValidator::Validator.valid?(:card_number.to_s)
    errors.add(:card_number, "is not valid.")
  end
end

【讨论】:

  • 由于某种原因,上述内容实际上不起作用。不知道为什么。我回到了我在原始帖子中的内容,并且确实有效。
猜你喜欢
  • 1970-01-01
  • 2023-03-09
  • 2010-12-21
  • 1970-01-01
  • 1970-01-01
  • 2017-06-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多