首页 > 解决方案 > 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-on-railsruby

解决方案


显然使用了错误的 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 % 

推荐阅读