ruby-on-rails - rails generate 失败缺少捆绑器
问题描述
我尝试在 rails 中生成一个组件,但我收到一个错误找不到捆绑器,尽管它已安装!请参阅下面的输出。怎么了?
ran@ran-mac MySite % gem install bundler:2.2.31.
Successfully installed bundler-2.2.31
Parsing documentation for bundler-2.2.31
Done installing documentation for bundler after 1 seconds
1 gem installed.
ran@ran-mac MySite % bundler --version.
Bundler version 2.2.31
ran@ran-mac MySite % rails generate scaffold todo_list title:string description: text
Traceback (most recent call last):
5: from bin/rails:2:in `<main>'
4: from bin/rails:2:in `load'
3: from /Users/ran/source/rails/MySite/bin/spring:3:in `<top (required)>'
2: from /Library/Ruby/Site/2.6.0/rubygems/core_ext/kernel_gem.rb:62:in `gem'
1: from /Library/Ruby/Site/2.6.0/rubygems/dependency.rb:323:in `to_spec'
/Library/Ruby/Site/2.6.0/rubygems/dependency.rb:313:in `to_specs': Could not find 'bundler' (2.2.31) required by your /Users/ran/source/rails/MySite/Gemfile.lock. (Gem::MissingSpecVersionError)
To update to the latest version installed on your system, run `bundle update --bundler`.
To install the missing version, run `gem install bundler:2.2.31`
Checked in 'GEM_PATH=/Users/ran/.gem/ruby/2.6.0:/Library/Ruby/Gems/2.6.0:/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/gems/2.6.0' , execute `gem env` for more information
ran@ran-mac MySite %
解决方案
显然使用了错误的 ruby 版本(仍然掌握了窍门)为了使用正确的版本,我执行了以下任务:
ran@ran-mac MySite % rbenv init
# Load rbenv automatically by appending
# the following to ~/.zshrc:
eval "$(rbenv init - zsh)"
ran@ran-mac MySite % eval "$(rbenv init - zsh)"
ran@ran-mac MySite % rbenv versions
system
2.7.2
* 3.0.2 (set by /Users/ran/source/rails/MySite/.ruby-version)
ran@ran-mac MySite % rbenv shell 3.0.2
ran@ran-mac MySite % rails generate scaffold todo_list title:string description: text
Running via Spring preloader in process 81956
invoke active_record
create db/migrate/20211117075550_create_todo_lists.rb
create app/models/todo_list.rb
invoke test_unit
create test/models/todo_list_test.rb
create test/fixtures/todo_lists.yml
invoke resource_route
route resources :todo_lists
invoke scaffold_controller
create app/controllers/todo_lists_controller.rb
invoke erb
create app/views/todo_lists
create app/views/todo_lists/index.html.erb
create app/views/todo_lists/edit.html.erb
create app/views/todo_lists/show.html.erb
create app/views/todo_lists/new.html.erb
create app/views/todo_lists/_form.html.erb
invoke resource_route
invoke test_unit
create test/controllers/todo_lists_controller_test.rb
create test/system/todo_lists_test.rb
invoke helper
create app/helpers/todo_lists_helper.rb
invoke test_unit
invoke jbuilder
create app/views/todo_lists/index.json.jbuilder
create app/views/todo_lists/show.json.jbuilder
create app/views/todo_lists/_todo_list.json.jbuilder
invoke assets
invoke scss
create app/assets/stylesheets/todo_lists.scss
invoke scss
create app/assets/stylesheets/scaffolds.scss
ran@ran-mac MySite %
推荐阅读
- java - Netbeans 从 github 导入项目
- python - 如何在我的 Restful API 中使用 Angular JS
- javascript - Converts a text string into an array based on certain characters and symbols
- html - 网站和移动设备上的不同页面视图
- oracle - 在 Oracle SQL Developer 的查询中缺少表达式
- python - Python:如何反转字符串的前 2 个字符?
- angular - Angular - 带有可观察测试的承诺
- html - 未应用内联块
- django - Django Rest Framework - POST 请求调用 GET 请求(本地主机)
- laravel-5 - 自定义域不适用于宅基地