ruby-on-rails - 哪个 rails vs rails -v vs 哪个 ruby

标签 ruby-on-rails ruby ruby-on-rails-5

我还是 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/

相关文章:

mysql - 检查mysql表是否已经存在

ruby-on-rails - 调用 rake 任务时无法加载命名空间模型

ruby-on-rails - Rails 模型可以有一组关联吗?

ruby-on-rails - 阻止 Authlogic 为非 HTML 请求建立 session /cookie

ruby-on-rails - rails 4.2 : Unknown Attribute or Server Error in Log

ruby - 在 Ruby 中训练神经网络

ruby-on-rails - Ruby on Rails 表单输入

ruby-on-rails - RVM 安装 Rubies 失败

ruby-on-rails - activeadmin 表单中所需的输入不起作用

mysql - 三表关联