【问题标题】:Implement find(), save() ActiveRecord methods for ActiveMerchant CreditCard object为 ActiveMerchant CreditCard 对象实现 find()、save() ActiveRecord 方法
【发布时间】:2010-12-07 21:18:05
【问题描述】:
在 Ruby on Rails 应用程序中为 ActiveMerchant ActiveMerchant::Billing::CreditCard 对象实现 ActiveRecord 的 find() 和 save() 方法的最佳方法是什么?
我希望我的信用卡对象继承自 ActiveRecord 和 ActiveMerchant。
警告:我知道将信用卡信息保存到数据库总是被认为是个坏主意,最好使用便于您存储卡的网关。假设这是必要的,并且满足了合适的安全标准(PCI DSS、文件系统和数据库加密、网络分离等)。
【问题讨论】:
标签:
ruby-on-rails
ruby
activerecord
credit-card
activemerchant
【解决方案1】:
我使用以下方法创建了一个标准 Rails ActiveRecord 模型:
./script/generate model CreditCard first_name:string last_name:string number:string month:integer year:integer type:string start_month:integer start_year:integer issue_number:string
这与信用卡的 ActiveRecord 定义相匹配。
此外,ActiveMerchant 提供ActiveMerchant::Billing::CreditCardMethods,引用 ActiveMerchant 开发团队的话说是:
可包含在自定义信用卡对象中的便捷方法,例如基于 ActiveRecord 的信用卡对象。
我已将ActiveMerchant::Billing::CreditCardMethods 包含在我的信用卡模型中,并将翻译验证以确保我对信用卡的定义与 ActiveMerchant 的匹配。