有什么区别:rails vs. bin / rails?

时间:2014-08-15 21:01:24

标签: ruby-on-rails linux bin

作为新生,我遇到了许多不清楚的细节。其中一个是 bin -thing。我一直想知道之间的区别是什么:

rails generate... 

bin/rails generate...

?当我在控制台中运行这些命令时,它们似乎表现相同。还有 rake bin / rake ......还有更多可能。谢谢你的帮助。

- 问候

2 个答案:

答案 0 :(得分:9)

如果您只是运行' rails',RubyGems将激活它可以在PATH中找到的最新版本的rails可执行文件。只要在项目中使用此版本的Rails,这就没问题了。如果您的项目使用较旧版本的Rails并且运行了' rails',则在尝试运行最新Rails版本中已更改的代码时可能会遇到问题。 Binstubs通过确保您的环境使用项目的Gemfile中指定的版本来解决此问题。

答案 1 :(得分:2)

考虑这种情况:

我有一个使用Rails版本4.0.0的应用程序。 我的目标是将其升级到Rails 4.1.9。为此,我尝试逐步升级:首先升级到4.0.13,然后升级到4.1,最后升级到4.1.9。

一切顺利。所有的测试都是使用RSpec传递的。

最后,我尝试使用rails s运行我的服务器。 Booom! Ruby崩溃了。 然后,我使用了bin/rails s。一切都很顺利。

所以我认为如果您在系统中设置了不同版本的rails,使用bin/rails选项会更安全。

P.S。为了确保我的假设是正确的,我删除了除4.1.9之外的所有rails版本,然后我尝试用rails s重新运行服务器。这次没有崩溃。

希望这澄清。