質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.37%
Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

RubyGems

RubyGemsはRubyによるプログラミングのためのパッケージマネジメントツールです。ユーザはこれを使用することで、Rubyライブラリのダウンロードやアップデートや、依存関係の自動解決が可能になります。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Ruby on Rails 4

Ruby on Rails4はRubyによって書かれたオープンソースのウェブフレームワークです。 Ruby on Railsは「設定より規約」の原則に従っており、効率的に作業を行うために再開発を行う必要をなくしてくれます。

Q&A

解決済

2回答

5196閲覧

gem install時に「ArgumentError: wrong number of arguments (given 1, expected 0)」

GenkiSugiyama

総合スコア86

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

RubyGems

RubyGemsはRubyによるプログラミングのためのパッケージマネジメントツールです。ユーザはこれを使用することで、Rubyライブラリのダウンロードやアップデートや、依存関係の自動解決が可能になります。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Ruby on Rails 4

Ruby on Rails4はRubyによって書かれたオープンソースのウェブフレームワークです。 Ruby on Railsは「設定より規約」の原則に従っており、効率的に作業を行うために再開発を行う必要をなくしてくれます。

0グッド

0クリップ

投稿2021/06/19 10:22

編集2021/06/20 01:27

ruby2.4.0→ruby2.5.0
Rails4.2.1→Rails4.2.8
のアップデート作業を行なっている最中に表題のエラーが発生するようになりました。

環境情報

※dockerを使用した仮想環境上で動かしています

$ rbenv -v rbenv 1.1.2-17-g7795476 $ ruby -v ruby 2.5.0p0 (2017-12-25 revision 61468) [x86_64-linux] $ gem -v 2.5.1 $ bundle -v Bundler version 2.2.20 $ rails -v ※エラーで確認できないがGemfileは4.2.8 Could not find gem 'factory_bot_rails' in rubygems repository https://rubygems.org/ or installed locally. The source does not contain any versions of 'factory_bot_rails' Run `bundle install` to install missing gems.
$ gem env RubyGems Environment: - RUBYGEMS VERSION: 2.5.1 - RUBY VERSION: 2.5.0 (2017-12-25 patchlevel 0) [x86_64-linux] - INSTALLATION DIRECTORY: /opt/rbenv/versions/2.5.0/lib/ruby/gems/2.5.0 - USER INSTALLATION DIRECTORY: /home/userName/.gem/ruby/2.5.0 - RUBY EXECUTABLE: /opt/rbenv/versions/2.5.0/bin/ruby - EXECUTABLE DIRECTORY: /opt/rbenv/versions/2.5.0/bin - SPEC CACHE DIRECTORY: /home/userName/.gem/specs - SYSTEM CONFIGURATION DIRECTORY: /opt/rbenv/versions/2.5.0/etc - RUBYGEMS PLATFORMS: - ruby - x86_64-linux - GEM PATHS: - /opt/rbenv/versions/2.5.0/lib/ruby/gems/2.5.0 - /home/userName/.gem/ruby/2.5.0 - GEM CONFIGURATION: - :update_sources => true - :verbose => true - :backtrace => false - :bulk_threshold => 1000 - REMOTE SOURCES: - https://rubygems.org/ - SHELL PATH: - /opt/rbenv/versions/2.5.0/bin - /opt/rbenv/libexec - /opt/rbenv/plugins/ruby-build/bin - /opt/rbenv/shims - /opt/rbenv/bin - /usr/local/bin - /bin - /usr/bin - /usr/local/sbin - /usr/sbin - /sbin - /home/userName/.local/bin - /home/userName/bin

行ったこと

※以下バージョンアップの作業過程から記載しています。
・ruby2.4→2.5にアップデートした後にRailsのバージョンアップを実行
Gemfileのrailsのバージョンを「2.4.8」に変更しbundle updateした後のrails app:updateでエラー

Array values in the parameter to `Gem.paths=` are deprecated. Please use a String or nil. An Array ({"GEM_PATH"=>["/opt/rbenv/versions/2.5.0/lib/ruby/gems/2.5.0", "/home/userName/.gem/ruby/2.5.0"]}) was passed in from bin/rails:3:in `load' /opt/rbenv/versions/2.5.0/lib/ruby/gems/2.5.0/gems/bundler-1.16.3/lib/bundler/rubygems_integration.rb:200: warning: constant Gem::ConfigMap is deprecated Error: Command 'app:update' not recognized `

gem関連の警告文はこちらの記事を参考にrubyGemsのバージョンをダウングレードして解消(bundler:1.16.3、rubyGems:2.5.1)
※rubyGemsの元々のバージョンは3.2.20

この状態で動作確認を行おうとしたところ別のエラーが発生

DEPRECATION WARNING: The factory_girl gem is deprecated. Please upgrade to factory_bot. See https://github.com/thoughtbot/factory_bot/blob/v4.9.0/ UPGRADE_FROM_FACTORY_GIRL.md for further instructions. (called from require at /opt/rbenv/versions/2.5.0/lib/ruby/site_ruby/2.5.0/bundler/runtime.rb:66) bundler: failed to load command: unicorn (/opt/rbenv/versions/2.5.0/bin/unicorn) /var/www/journal_api/current/config/initializers/rails_config.rb:1:in `<top (required)>': undefined method `setup' for RailsConfig:Module (NoMethodError)

factory_bot関連のエラーを解消しようとGemfileを変更しbundle installを実行したところで表題のエラーが発生

ArgumentError: wrong number of arguments (given 1, expected 0) An error occurred while installing factory_bot (5.2.0), and Bundler cannot continue. Make sure that `gem install factory_bot -v '5.2.0' --source 'https://rubygems.org/'` succeeds before bundling.

エラー文に従ってgem installを実行してもArgumentError

$ gem install factory_bot -v '5.2.0' --source 'https://rubygems.org/' ERROR: While executing gem ... (ArgumentError) wrong number of arguments (given 1, expected 0)

調べているとrubyとrubyGemsのバージョンの関係でエラーのようなのですが、rubyGemsのアップデートを行おうとしても同様のエラーが発生します。

$ gem update --system Updating rubygems-update ERROR: While executing gem ... (ArgumentError) wrong number of arguments (given 1, expected 0)

上記のエラーの原因も検索で似たような現象が起きているというだけでそうなのではないかと推測しただけで断定できたわけではありません。

エラーの原因とその解消法についてご教示いただけると大変助かります。

よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

自己解決

こちらの記事を参考にruby2.5.0を入れなおしたところ再びコマンドが通るようになりました。
おそらくrubygemsダウングレードのタイミングでバージョン違いが起きてしまったのでしょうか。。。

投稿2021/06/22 01:00

GenkiSugiyama

総合スコア86

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

正直、提示された情報のみでは解決は困難です。
RubyGems の複数の脆弱性についてを見る限りRubyGems2.7.6以降を利用するべきな気はしますが

幸いなことにRuby2.5は今年4月までサポートされており2.5.9がリリースされていますので
そちらを試してみてはいかがでしょうか?

投稿2021/06/22 00:51

asm

総合スコア15149

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.37%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問