我将 Linux 作为我的主要 Rails 开发平台,但我也安装了 Rails 并在我的 Windows 电脑上运行。我的所有应用程序都在两台计算机之间同步,因此 Linux 上的更改将反映在 Windows 上。
我想在 Linux 上使用 postgresql,但在 Windows 上使用 sqlite3。有没有办法根据我使用的平台区分某些要加载的宝石集(Gemfile)?
我将 Linux 作为我的主要 Rails 开发平台,但我也安装了 Rails 并在我的 Windows 电脑上运行。我的所有应用程序都在两台计算机之间同步,因此 Linux 上的更改将反映在 Windows 上。
我想在 Linux 上使用 postgresql,但在 Windows 上使用 sqlite3。有没有办法根据我使用的平台区分某些要加载的宝石集(Gemfile)?
Bundler 文档 确实提到了: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 提供不同的代码库。
无论如何,看看这个问题 Multiple database.yml but one application