私はメインのRails開発プラットフォームとしてLinuxを使用していますが、RailsをインストールしてWindowsPCで動作させています。私のアプリはすべて2台のコンピューター間で同期されるため、Linuxでの変更はWindowsに反映されます。
Linuxではpostgresqlを使用したいのですが、Windowsではsqlite3を使用します。使用しているプラットフォームに基づいて、ロードする特定のgemセット(Gemfile)を区別する方法はありますか?
私はメインのRails開発プラットフォームとしてLinuxを使用していますが、RailsをインストールしてWindowsPCで動作させています。私のアプリはすべて2台のコンピューター間で同期されるため、Linuxでの変更はWindowsに反映されます。
Linuxではpostgresqlを使用したいのですが、Windowsではsqlite3を使用します。使用しているプラットフォームに基づいて、ロードする特定のgemセット(Gemfile)を区別する方法はありますか?
Bundler docs:platform
には、特定のプラットフォームにインストールするgemを指定するために使用できるオプション について記載されています。
別の解決策(他のRuby開発者やオンラインチュートリアルから学んだ)は、gemsetをグループ内にラップすることです。例:
group :option do
gem 'gem1'
gem 'gem2'
...
end
次に、以下を実行します。
bundle install --without option
このコマンドを実行すると、bundlerはオプショングループ内にリストされていないgemをインストールします。オプションをWindowsまたはLinuxのいずれかに設定できます。したがって、特定のプラットフォームを区別する方法が解決されます。
ハッピーコーディング!
両方のマシン(LinuxとWindows)でpostgresqlを使用することをお勧めします。これにより、同じ開発者エクスペリエンスが得られます。たとえば、smth postgresql固有を使用する場合は、windows/sqliteでそのコードを実行するときにこれを考慮する必要があります。WindowsとLinuxで異なるコードベースを使用したくないと確信しています。
とにかく、この質問を見てください 複数のdatabase.ymlが1つのアプリケーション