为什么我的rails命令与system()的工作方式不同于终端?

时间:2017-06-30 21:06:27

标签: ruby-on-rails ruby ruby-on-rails-3 ruby-on-rails-5

我正在尝试运行的命令是rails _3.2.13_ new App

当我在命令行中运行它时会创建一个版本为3.2.13的Rails应用程序,但是当我使用system "rails _3.2.13_ new #{self.name} -T -B"运行它时,它会创建一个Rails应用程序,其中包含最新版本的Rails而不是3.2.13版本。< / p>

1 个答案:

答案 0 :(得分:1)

这是Ruby使用/bin/sh执行shell命令的结果,而您可能每天都在终端中使用/bin/bash。每个加载方式以及每个加载方式中的特定配置都将改变配置。

如果您通过拨打which rails并在终端中运行system,您可能会看到不同的路径。检查echo $PATH,您可能也会看到不同的结果。

要解决这种情况,您可以查看What's the difference between .bashrc, .bash_profile, and .environment?,它可以让您更好地了解正在发生的事情,然后调整您的shell配置以适应。