我正在构建一个在迁移中使用外键的rails引擎.
add_foreign_key "theblog_content_nodes", "theblog_content_statuses", column: :content_status_id
从版本4.2
rails开始支持外键,但在我们使用foreigner
gem 之前.如果我们尝试使用foreigner
与rails 4.2
和更新,我们得到一个错误.
所以,因为我要从4.0.1开始支持rails,所以我必须在我的gemspec中使用条件依赖.
我在这里找到了可能的解决方案,但我不知道如何检查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
但是我想foreigner
为旧的rails版本添加依赖项.