Rails 5 中 Spree Commerce 的模型翻译

Model translation for Spree Commerce in Rails 5

是否可以在 rails 5 中为 Spree 3.2(通过 spree_globalize)进行模型翻译? 我按照说明进行操作,但是当我 运行 捆绑包更新时,出现此错误:

Bundler could not find compatible versions for gem "spree_i18n":
  In Gemfile:
    spree_i18n

    spree_globalize was resolved to 3.1.0.beta, which depends on
      spree_i18n (~> 3.1.0.beta)

这是我的 gemfile 的相关部分

gem 'spree', '~> 3.2.0.rc1'
gem 'spree_auth_devise', '~> 3.2.0.beta'
gem 'spree_gateway', '~> 3.2.0.beta'
gem 'spree_i18n', github: 'spree-contrib/spree_i18n' 
gem 'spree_globalize', github: 'spree-contrib/spree_globalize'

您现在遇到的问题是 Spree 附加组件版本控制的常见问题。它们往往被固定到 Spree 的一个版本,因此当您升级时,您通常最终不得不分叉附加组件、修改依赖项要求、测试,也许修复,然后使用它,上游它。这有点麻烦,但它最终会起作用,因此可以很好地支持与 Spree 的每个版本兼容的附加组件。

在 Spree 的世界中,版本控制具有一致的格式。 Spree 和附加组件往往有与 Spree 版本相匹配的分支。例如,3-1-stable 表示 Spree 和所有附加组件。除非您需要 Spree 3.2 中的某些东西,否则我建议您坚持使用 3.1,因为它已经发布了几个月,并且大多数常用的附加组件都已针对它进行了更新和测试。无论您使用哪个版本,让您的插件使用与 Spree 相同的版本!。那样生活会轻松很多。 (旁注:我倾向于挂起至少一个次要版本以等待加载项更新,在升级之前排除错误)

以下是我在 Gemfile 中为加强一致性所做的工作。您会注意到我请求附加组件的 3.1 版 指向它们的 3-1-stable 分支。

# Spree
spree_version = '3.1'
spree_branch = "#{spree_version.sub(/\./, '-')}-stable"

gem 'spree',                  "~> #{spree_version}", github: 'spree/spree', branch: spree_branch
gem 'spree_gateway',          "~> #{spree_version}", github: 'WebGents/spree_gateway', branch: "#{spree_branch}-quickpay-storage"
gem 'spree_auth_devise',      "~> #{spree_version}", branch: spree_branch
gem 'spree_static_content',   "~> #{spree_version}", github: 'spree-contrib/spree_static_content', branch: spree_branch
gem 'spree_sale_pricing',     "~> #{spree_version}", github: 'WebGents/spree-sale-pricing', branch: spree_branch
gem 'spree_i18n',             "~> #{spree_version}", github: 'spree-contrib/spree_i18n', branch: spree_branch
gem 'spree_variant_options',  "~> #{spree_version}", github: 'WebGents/spree_variant_options', branch: spree_branch

如果您坚持使用 3.1 版,您应该会发现您要使用的插件都是兼容的并且可以使用。