私は、移行時に外部キーを使用するレールエンジンを構築しています。バージョン4.2
レールからgemspec内の条件付きルビの宝石の依存関係
add_foreign_key "theblog_content_nodes",
"theblog_content_statuses", column: :content_status_id
は、それ自体で外部キーをサポートしていますが、我々はこのためにforeigner
宝石を使用する前に。 foreigner
とrails 4.2
とを使用しようとするとエラーが発生します。
4.0.1から始まるレールをサポートする予定なので、私はgemspecで条件依存性を使用する必要があります。
私は可能な解決策を見つけましたhereしかし、私はどのようにgemspecのレールバージョンをチェックするのか分かりません。
# 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
依存関係を追加したいと思います。アクセス・レールバージョンに
あなたはそのシナリオのために、あなたの宝石の2つの異なるバージョンを提供すると思いますか? – iltempo
@iltempo、どちらのシナリオでも1つのバージョンを使用することもできます。 Railsのバージョンが '4.2'よりも小さく、私たちが外部キーを使いたい場合は' gemfile'に 'gem" foreigner "を追加しなければならないことに注意してください。 –