我尝试运行的命令是rails _3.2.13_ new App
当我在命令行中运行它时,它会创建一个版本为 3.2.13 的 Rails 应用程序,但是当我使用system "rails _3.2.13_ new #{self.name} -T -B"
运行它时,它会创建一个具有最新版本 Rails 而不是 3.2.13 版本的 Rails 应用程序。
这是Ruby使用/bin/sh
来执行shell命令的结果,而你可能每天都在终端中使用/bin/bash
。每个加载方式以及每个配置中存在的特定配置将更改配置。
如果您从两个呼叫到system
和终端运行which rails
,您可能会看到不同的路径。检查echo $PATH
,您可能也会看到不同的结果。
要解决此问题,您可以查看 .bashrc、.bash_profile 和 .environment 之间有什么区别?这将让您更好地了解正在发生的事情,然后调整您的 shell 配置以适应。