首页 > 解决方案 > 具有不同货币/定价的 Rails 产品数据库

问题描述

我的 Rails 应用程序中有一个产品表,其中包含以下列:

table "products"
t.string   "name"
t.text     "description"
t.integer  "price"

当我开发应用程序时,它只针对一个国家和单一货币。现在我想支持更多基于地理国家的货币,但是用我当前的数据库结构最好的方法是什么?

有人建议我使用 Money gem,但这只是货币兑换。我真正想要的是为不同的货币/国家手动设置不同的定价。

关于最好的方法有什么建议吗?

更新:我们不打算拥有超过 20 种产品,而且我们的定价有点高,所以我们不关心汇率 - 我们希望根据某些国家/地区的经济强劲程度制定不同的定价

标签: sqlruby-on-railscurrency

解决方案


按照我的评论,我应该使用andprices之间的连接表和has_many :through Association,如文档中所示。productscurrencies

连接模型Price具有列:

| product_id | currency_id | value |

Price关系:

class Price < ApplicationRecord
  belongs_to :product
  belongs_to :currency
end

当然,模型Currency是必需的,可以存储,名称,国家,符号,标志,...


推荐阅读