【发布时间】:2023-01-19 14:35:53
【问题描述】:
最近开始学习 Ruby on Rails 来构建一个 web API,使用 VS code 编码,关注 youtube 视频:https://www.youtube.com/watch?v=6KqbPJtA5O8&list=PLbTv9eGiI03u1-JFkFpPGsR_hMre6WX3e
安装完所有东西后,用rails new apiproject --api创建一个项目
下一步是用bin/rails routes检查路由并得到错误
Error: Command 'routes' not recognized
Did you mean: `$ rake routes` ?
Usage: rails COMMAND [ARGS]
The most common rails commands are:
generate Generate new code (short-cut alias: "g")
console Start the Rails console (short-cut alias: "c")
server Start the Rails server (short-cut alias: "s")
dbconsole Start a console for the database specified in config/database.yml
(short-cut alias: "db")
new Create a new Rails application. "rails new my_app" creates a
new application called MyApp in "./my_app"
In addition to those, there are:
destroy Undo code generated with "generate" (short-cut alias: "d")
plugin new Generates skeleton for developing a Rails plugin
runner Run a piece of code in the application environment (short-cut alias: "r")
All commands can be run with -h (or --help) for more information.
我试过rake route,但结果不是我在视频中预期的那样。
之后,我尝试先用bin/rails server启动服务器,但我一直收到错误:
/Users/jolin/.rvm/gems/ruby-2.7.0/gems/activesupport-4.2.2/lib/active_support/core_ext/object/duplicable.rb:85: warning: BigDecimal.new is deprecated; use BigDecimal() method instead.
=> Booting WEBrick
=> Rails 4.2.2 application starting in development on http://localhost:3000
=> Run `rails server -h` for more startup options
=> Ctrl-C to shutdown server
/Users/jolin/.rvm/gems/ruby-2.7.0/gems/activesupport-4.2.2/lib/active_support/core_ext/numeric/conversions.rb:121: warning: constant ::Fixnum is deprecated
/Users/jolin/.rvm/gems/ruby-2.7.0/gems/activesupport-4.2.2/lib/active_support/core_ext/numeric/conversions.rb:121: warning: constant ::Bignum is deprecated
Exiting
Traceback (most recent call last):
9377: from bin/rails:3:in `<main>'
9376: from bin/rails:3:in `load'
9375: from /Users/jolin/Desktop/RoR/liborapi/bin/spring:15:in `<top (required)>'
9374: from /Users/jolin/.rvm/rubies/ruby-2.7.0/lib/ruby/2.7.0/rubygems/core_ext/kernel_require.rb:72:in `require'
9373: from /Users/jolin/.rvm/rubies/ruby-2.7.0/lib/ruby/2.7.0/rubygems/core_ext/kernel_require.rb:72:in `require'
9372: from /Users/jolin/.rvm/gems/ruby-2.7.0/gems/spring-4.1.0/lib/spring/binstub.rb:11:in `<top (required)>'
9371: from /Users/jolin/.rvm/gems/ruby-2.7.0/gems/spring-4.1.0/lib/spring/binstub.rb:11:in `load'
9370: from /Users/jolin/.rvm/gems/ruby-2.7.0/gems/spring-4.1.0/bin/spring:49:in `<top (required)>'
... 9365 levels...
4: from /Users/jolin/.rvm/gems/ruby-2.7.0/gems/activesupport-4.2.2/lib/active_support/core_ext/numeric/conversions.rb:131:in `block (2 levels) in <class:Numeric>'
3: from /Users/jolin/.rvm/gems/ruby-2.7.0/gems/activesupport-4.2.2/lib/active_support/core_ext/numeric/conversions.rb:131:in `block (2 levels) in <class:Numeric>'
2: from /Users/jolin/.rvm/gems/ruby-2.7.0/gems/activesupport-4.2.2/lib/active_support/core_ext/numeric/conversions.rb:131:in `block (2 levels) in <class:Numeric>'
1: from /Users/jolin/.rvm/gems/ruby-2.7.0/gems/activesupport-4.2.2/lib/active_support/core_ext/numeric/conversions.rb:131:in `block (2 levels) in <class:Numeric>'
/Users/jolin/.rvm/gems/ruby-2.7.0/gems/activesupport-4.2.2/lib/active_support/core_ext/numeric/conversions.rb:131:in `block (2 levels) in <class:Numeric>': stack level too deep (SystemStackError)
我之前遇到undefined method <class:BigDecimal>错误,但是在将gem 'bigdecimal', '1.4.2'添加到Gemfile之后,它就解决了,但是我找不到解决这个问题的方法。
即使在第一步我也很挣扎,我试图在不同版本中升级/降级我的 Ruby 和 Rails ...
我当前的版本:
红宝石:红宝石 2.7.0p0(2019-12-25 修订版 647ee6f091) [x86_64-darwin19]
导轨:导轨 4.2.2
(但是使用 rails -v,我总是收到弃用警告:'--rc' 的预期字符串默认值;得到 false(布尔值)。
这将在未来被拒绝,除非您在代码中明确传递选项check_default_type: false或调用allow_incompatible_default_type!
您可以通过设置环境变量 THOR_SILENCE_DEPRECATION 来消除弃用警告。)
rvm:rvm 1.29.12(最新)作者:Michal Papis、Piotr Kuczynski、Wayne E. Seguin [https://rvm.io]宝石:3.1.2
更新在尝试升级 ruby、降级 ruby、降级 rails 之后
我现在在运行 bin/rails server 时不断收到如下错误:
Traceback (most recent call last):
4: from bin/rails:3:in `<main>'
3: from bin/rails:3:in `load'
2: from /Users/jolin/Desktop/RoR/liborapi/bin/spring:10:in `<top (required)>'
1: from /Users/jolin/Desktop/RoR/liborapi/bin/spring:10:in `read'
/Users/jolin/Desktop/RoR/liborapi/bin/spring:10:in `read': No such file or directory @ rb_sysopen - /Users/jolin/Desktop/RoR/liborapi/Gemfile.lock (Errno::ENOENT)
【问题讨论】:
标签: ruby-on-rails ruby api rubygems