0

我是编程世界的新手,我开始通过虚拟机在 ubuntu 20.4 上使用 ruby​​ on rails 进行编程。我正在尝试使用作曲家制作应用程序。只有每次我输入: rails new myapplication -m https://raw.github.com/RailsApps/rails-composer/master/composer.rb;我收到以下消息:不支持 Rails 7.0.2.2。使用 Rails 4.1 或更新版本。我在 rvm 的 rails 上安装了 ruby​​,这些是我的版本:

$ rails -v: Rails 7.0.2.2

$ ruby ​​-v: ruby ​​2.7.1p83 (2020-03-31 revision a0c7c23c9c) [x86_64-linux]

$ rvm: rvm 1.29.12 (latest) by Michal Papis, Piotr Kuczynski, Wayne E. Seguin [https://rvm.io]

$ gem list: rails (7.0.2.2, 4.1.0)

我已经尝试卸载此版本 7 的 rails 并安装请求的版本,但即便如此,当我创建一个新的应用程序更改名称或覆盖我已经创建的应用程序时,也会发生相同的错误。

我在这里先向您的帮助表示感谢!

4

1 回答 1

1

如果您搜索该作曲家代码,您应该会找到:

# this application template only supports Rails version 4.1 and newer
case Rails::VERSION::MAJOR.to_s
when "5"
  say_wizard "You are using Rails version #{Rails::VERSION::STRING}. Please report any issues."
when "3"
  say_wizard "You are using Rails version #{Rails::VERSION::STRING} which is not supported. Use Rails 4.1 or newer."
  raise StandardError.new "Rails #{Rails::VERSION::STRING} is not supported. Use Rails 4.1 or newer."
when "4"
  case Rails::VERSION::MINOR.to_s
  when "0"
    say_wizard "You are using Rails version #{Rails::VERSION::STRING} which is not supported. Use Rails 4.1 or newer."
    raise StandardError.new "Rails #{Rails::VERSION::STRING} is not supported. Use Rails 4.1 or newer."
  end
else
  say_wizard "You are using Rails version #{Rails::VERSION::STRING} which is not supported. Use Rails 4.1 or newer."
  raise StandardError.new "Rails #{Rails::VERSION::STRING} is not supported. Use Rails 4.1 or newer."
end

作者在编写案例陈述和错误消息方面做得很差。当该 case 语句在您的设置上运行时,它会执行以下操作:

  1. 这是rails版本5吗?不?好的。
  2. 这是rails版本3吗?不?好的。
  3. 这是rails版本4吗?不?好的。
  4. 那么它必须是 4 之前的 rails 版本,因为我们都知道数字永远不会超过 5!¯\ (ツ)

使用 RVM 安装 Rails 版本 5,或选择其他项目。

于 2022-02-12T04:24:55.507 回答