【问题标题】:Rails product database with different currency/pricing具有不同货币/定价的 Rails 产品数据库
【发布时间】:2018-06-08 06:50:53
【问题描述】:

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

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

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

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

有什么最好的方法推荐吗?

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

【问题讨论】:

  • 如果您介意汇率,建议您查看stackoverflow.com/questions/3139879/…
  • 或者设置或者设置一个带有product_id | currency_id | price的表,但是如果你有很多产品和货币,那么保持更新就很重要了。
  • @iGian 谢谢你的想法.. 我喜欢 product_id |货币_id |价格...您可以在答案部分详细描述,如果您不介意,我会将其标记为正确答案
  • 为什么不呢?希望答案能有所帮助。或者回来联系。谢谢。

标签: sql ruby-on-rails currency


【解决方案1】:

根据我的评论,我应该使用productscurrencies 之间的连接表pricesthe has_many :through Association,如文档中所示。

连接模型Price 有列:

| product_id | currency_id | value |

Price 关系:

class Price < ApplicationRecord
  belongs_to :product
  belongs_to :currency
end

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

【讨论】:

    【解决方案2】:

    对于需要支持多语言/地区/货币的内容,请尝试 Globalize gem。 https://github.com/globalize/globalize

    【讨论】:

    • 这似乎只适用于 I18n。这里的问题比这更大。
    猜你喜欢
    • 2014-02-17
    • 1970-01-01
    • 2014-08-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多