gpt4 book ai didi

ruby - gemspec 中的条件 ruby​​ gem 依赖项

转载 作者:数据小太阳 更新时间:2023-10-29 07:00:35 28 4
gpt4 key购买 nike

我正在构建一个在迁移中使用外键的 Rails 引擎。

    add_foreign_key "theblog_content_nodes",
"theblog_content_statuses", column: :content_status_id

4.2 版本开始,rails 本身就支持外键,但在我们为此使用 foreigner gem 之前。如果我们尝试将 foreignerrails 4.2 及更新版本一起使用,我们会收到错误消息。

因为我要从 4.0.1 开始支持 Rails,所以我必须在我的 gemspec 中使用条件依赖。

我找到了可能的解决方案 here但我不知道如何在 gemspec 中检查 rails 版本。

# sidekiq-spy.gemspec

if RUBY_VERSION >= '2.1'
spec.add_development_dependency "curses", "~> 1.0"
end

注意:

我有另一个临时解决方案:我只是在我的迁移中检查 Foreigner 可用性。如果它不可用,我就不会创建外键:

if defined?(Foreigner)
add_foreign_key "theblog_content_nodes",
"theblog_content_statuses", column: :content_status_id
end

但是我想为旧的 rails 版本添加 foreigner 依赖。

最佳答案

要访问 rails 版本,我们可以使用类似下面的东西(基于 this answer ):

require 'rubygems'

rails_gem = Gem::Specification.select {|z| z.name == "rails"}.max_by {|a| a.version}
p rails_gem.version.version
#=> "4.2.5"

关于ruby - gemspec 中的条件 ruby​​ gem 依赖项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34041684/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com