Rails/Spring 支持
Spring 是一个 Rails 应用程序预加载器,通过在后台保持应用程序运行来加速开发。 这意味着当您进行更改时,无需重新启动服务器。
在 RubyMine 中,Spring 可用于运行 Rails 生成器、 测试 和 Rake 任务。 确保将 spring gem 添加到 Gemfile 并 安装 到项目的解释器中。
请注意,Test::Unit/Shoulda/Minitest 测试默认情况下不会使用 Spring 运行。 有关启用 Spring 运行测试的更多信息,请参阅 使用 Spring 运行测试。
使用 Spring 运行测试
RubyMine 允许您指定是否使用 Spring 预加载器运行指定的 运行/调试配置 的测试。 在下面的示例中,我们将演示如何从 test 目录中的所有 Minitest 测试运行 sample_rails_app 项目。 为此,您可以使用以下工作流程:
右键单击项目视图中的 test 目录,然后选择 运行“测试中的所有测试:...”。 执行测试后,将创建一个相应的运行/调试配置(测试中的所有测试:sample_rails_app)。

在导航栏中,展开运行/调试配置列表并选择 编辑配置。

在调用的对话框中,确保在左侧列表中选择了 测试中的所有测试:sample_rails_app 配置。 然后,将 使用预加载服务器 选项设置为 Spring。

点击 确定。 现在将使用 Spring 预加载器从此运行/调试配置运行测试。
使用 Spring 进行调试
RubyMine 允许您使用 调试 Spring 的 Rails 应用程序。 这可能需要更新系统或项目的 Spring 配置文件,以便将调试器加载到 Spring 分叉 的每个进程中。 当您开始调试时,RubyMine 可能会显示包含以下选项的对话框:
系统配置(~/.spring.rb)
单击以更新系统 Spring 配置( ~/.spring.rb 文件)并开始调试。
项目配置(config/spring.rb)
单击以更新项目 Spring 配置( config/spring.rb 文件)并开始调试。
请勿更改,禁用 Spring
单击以禁用 Spring 以调试应用程序。
禁用 Spring
如果需要,您可以为当前项目禁用 Spring。 为此:
在主菜单中,前往 Ctrl+Shift+A。
开始输入 Spring 并禁用 Spring 预加载器 选项。
Spring 服务器命令
当您在 RubyMine 中启动 Rails 生成器、测试或 Rake 任务时,它会启动一个带有自定义 SPRING_TMP_PATH 的 Spring 服务器单独实例 环境变量。 此变量的值等于 ${TMPDIR}rm<hash><name>。 这意味着您需要在 Spring 服务器命令前加上 SPRING_TMP_PATH=${TMPDIR}rm<hash><name> ,其中:
<hash>是以十六进制系统表示的项目位置的哈希代码。<name>是项目名称,可能被截断。
要检测必要的哈希代码和名称,请在终端中使用以下命令:
您将获得一个以 rm 前缀开头并按修改时间(降序)排序的目录列表。
在命令输出中,找到包含项目根文件夹首字母的条目。 例如,对于名为 sample_rails_app 的项目,相应的条目可能如下所示: rm1c3c5678samp。 此示例中的哈希代码是 1c3c5678 ,名称是 samp。
例如,如果您在 macOS 上使用 Spring 时遇到一些问题并需要停止它,请运行以下命令: