我还是 Ruby/Rails 的新手,大约一个月了,我想确保我理解这些看似重要的概念。特别是因为我预计必须使用多个版本。
which ruby - 返回路径。这是当前的还是默认的 Ruby 解释器?如果我执行一个 .rb 文件,该路径是否是正在使用的 Ruby 版本?
ruby -v - 好像是当前使用的ruby版本(直接对应rvm use ruby-#.#.#
)
rails -v - 如果我有多个 Rails,它会给我哪个 Rails?好像不是最新的版本。
which rails - 似乎至少部分对应于您从 rails -v 获得的 Rails 版本,因为当我使用 rvm 时使用 ruby-#.#.# 并在 ruby 版本之间切换,来自 which rails/rails -v
的输出变化。
当你做像 rake db:seed 这样的事情时,你能设置调用哪个 Rails 版本吗?还是它总是会使用与你做 rake/rails about
时获得的应用程序相同的 Rails 版本? ?
最佳答案
which
是一个 Unix 实用程序,它搜索您的 PATH 以查找与您提供的参数匹配的可执行文件,并返回该可执行文件的完整路径。您可以使用路径中包含的任何可执行文件执行此操作,而不仅仅是 Ruby 或 Rails。
另一方面,当您键入 ruby -v
时,您实际上是在调用带有 -v
作为命令行参数的 Ruby 可执行文件,告诉它返回它的版本。您将始终获得当前 Ruby 的版本。这同样适用于 Rails。
Ruby 和 Rails 的切换版本取决于您使用的管理工具。对于 RVM (Ruby 版本管理器),use ruby 2.5.0
将当前的 Ruby 版本切换到 Ruby 2.5.0(假设您之前已经安装了它)。对于 rbenv ,您通常想要编辑项目的 .ruby_version
文件,或者您可以使用 rbenv shell 2.5.0
即时切换到 Ruby 2.5.0。 Uncle Google有更多关于更晦涩的管理工具的信息。
关于ruby-on-rails - 哪个 rails vs rails -v vs 哪个 ruby,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48736599/