首页 > 解决方案 > 如何为 gem 提供广泛的 Rails 版本

问题描述

我是非常简单的Rails 引擎 gem的作者,它基本上只包含一个助手和一些 javascript。

唯一真正的运行时依赖是 jquery-rails。

希望它应该与任何大于 5 的 Rails 版本几乎兼容。当我最初编写 gem 时,我使用了一个实用的波浪形箭头。

s.add_dependency 'rails', '~> 5.0.0', '>= 5.0.0.1'

这是非常愚蠢的,因为它不适用于 5.1+。我现在将其更改为开放要求">= 5.0",并gem build警告它不可取:

WARNING:  open-ended dependency on rails (>= 5.0) is not recommended
  if rails is semantically versioned, use:
    add_runtime_dependency 'rails', '~> 5.0'

在最小化维护和确保良好兼容性方面的最佳实践是什么?

我应该将 Rails 依赖声明为 development_dependency,因为它暗示 gem 安装在 rails 引擎中吗?

标签: ruby-on-railsrubyrubygemsbundler

解决方案


警告中的建议是很好的建议。

s.add_dependency 'rails', '~> 5.0'这意味着它适用于 Rails 5.x,但不适用于 6.x。


推荐阅读