【问题标题】:Model translation for Spree Commerce in Rails 5Rails 5 中 Spree Commerce 的模型翻译
【发布时间】:2017-01-03 22:34:49
【问题描述】:

是否可以在 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_globalize。一旦我安装了它(我和你有同样的问题),我遇到了大量的错误和问题。在 github 上记录的问题也不再得到解答
  • 你可能是对的,我也有很多错误。可悲的是,这是我所知道的唯一提供模型翻译的 gem,您是否找到其他方法在您的网站上实现多语言?
  • 还没有,我明天会花时间弄清楚它有什么问题,所以如果我运气好的话,我会把我的叉子寄给你

标签: bundler ruby-on-rails-5 spree


【解决方案1】:

您现在遇到的问题是 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 版,您应该会发现您要使用的附加组件都兼容并且可以使用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多