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

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

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

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

Ruby

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

RubyGems

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

Ruby on Rails

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

Q&A

解決済

1回答

202閲覧

path指定のbundle installがおかしい

salud

総合スコア215

Ruby on Rails 5

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

Ruby

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

RubyGems

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

Ruby on Rails

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

0グッド

0クリップ

投稿2019/01/29 09:35

前提

GitLabから、path指定なしでbundle installしているRailsプロジェクトを、cloneしてきました。

環境としてMacを使用しており、バージョン情報は以下の通りです。

PC:~ salud$ rbenv -v rbenv 1.1.1 PC:~ salud$ ruby -v ruby 2.5.3p105 (2018-10-18 revision 65156) [x86_64-darwin17] PC:~ salud$ sudo ruby -v ruby 2.5.3p105 (2018-10-18 revision 65156) [x86_64-darwin17] PC:~ salud$ which ruby /Users/salud/.rbenv/shims/ruby PC:~ salud$ which bundle /Users/salud/.rbenv/shims/bundle PC:~ salud$ sudo which ruby /Users/salud/.rbenv/shims/ruby PC:~ salud$ sudo which bundler /Users/salud/.rbenv/shims/bundler PC:~ salud$ bundler -v Bundler version 1.17.2
Railsプロジェクト

.ruby-version

2.5.3

Gemfile.lock

GEM remote: https://rubygems.org/ ... (略) ... RUBY VERSION ruby 2.5.3p105 BUNDLED WITH 1.17.2
試したこと

cloneしてきたプロジェクトのbundlerバージョンが1.17.2だったため、手元の環境のMacも1.17.2にダウングレードしました。

その後、以下のコマンドで、pathを指定しながらbundle installを行ったところ、成功したかのようにみえました。
$ bundle install --path vendor/bundler

しかし、vendor/bundle以下には、このような階層ができていました。
vendor/bundle/ruby/2.5.0/*

Ruby version 2.5.3で使用しているはずですので、階層にも2.5.3という名前が付くはずではないのでしょうか?

案の定、このあとbin/rails sbundle exec db:createコマンドを実行してもエラーで落ちてしまいます。

ログも一部を貼り付けておきます。(そのまま貼り付けたところ、字数オーバーでした。)

PC:rails_app salud$ bin/rails s => Booting Puma => Rails 5.2.2 application starting in development => Run `rails server -h` for more startup options Exiting Traceback (most recent call last): 96: from bin/rails:3:in `<main>' 95: from bin/rails:3:in `load' 94: from /Users/salud/rails_app/bin/spring:15:in `<top (required)>' 93: from /Users/salud/.rbenv/versions/2.5.3/lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb:70:in `require' 92: from /Users/salud/.rbenv/versions/2.5.3/lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb:70:in `require' 91: from /Users/salud/rails_app/vendor/bundler/ruby/2.5.0/gems/spring-2.0.2/lib/spring/binstub.rb:31:in `<top (required)>' ... (略) ... 19: from /Users/salud/rails_app/vendor/bundler/ruby/2.5.0/gems/devise-4.5.0/lib/devise/rails/routes.rb:242:in `devise_for' 18: from /Users/salud/rails_app/vendor/bundler/ruby/2.5.0/gems/devise-4.5.0/lib/devise/rails/routes.rb:242:in `each' 17: from /Users/salud/rails_app/vendor/bundler/ruby/2.5.0/gems/devise-4.5.0/lib/devise/rails/routes.rb:243:in `block in devise_for' 16: from /Users/salud/rails_app/vendor/bundler/ruby/2.5.0/gems/devise-4.5.0/lib/devise.rb:346:in `add_mapping' 15: from /Users/salud/rails_app/vendor/bundler/ruby/2.5.0/gems/devise-4.5.0/lib/devise.rb:346:in `new' 14: from /Users/salud/rails_app/vendor/bundler/ruby/2.5.0/gems/devise-4.5.0/lib/devise/mapping.rb:72:in `initialize' 13: from /Users/salud/rails_app/vendor/bundler/ruby/2.5.0/gems/devise-4.5.0/lib/devise/mapping.rb:162:in `default_used_route' 12: from /Users/salud/rails_app/vendor/bundler/ruby/2.5.0/gems/devise-4.5.0/lib/devise/mapping.rb:95:in `routes' 11: from /Users/salud/rails_app/vendor/bundler/ruby/2.5.0/gems/devise-4.5.0/lib/devise/mapping.rb:78:in `modules' 10: from /Users/salud/rails_app/vendor/bundler/ruby/2.5.0/gems/devise-4.5.0/lib/devise/mapping.rb:83:in `to' 9: from /Users/salud/rails_app/vendor/bundler/ruby/2.5.0/gems/devise-4.5.0/lib/devise.rb:316:in `get' 8: from /Users/salud/rails_app/vendor/bundler/ruby/2.5.0/gems/activesupport-5.2.2/lib/active_support/inflector/methods.rb:281:in `constantize' 7: from /Users/salud/rails_app/vendor/bundler/ruby/2.5.0/gems/activesupport-5.2.2/lib/active_support/inflector/methods.rb:281:in `inject' 6: from /Users/salud/rails_app/vendor/bundler/ruby/2.5.0/gems/activesupport-5.2.2/lib/active_support/inflector/methods.rb:281:in `each' 5: from /Users/salud/rails_app/vendor/bundler/ruby/2.5.0/gems/activesupport-5.2.2/lib/active_support/inflector/methods.rb:283:in `block in constantize' 4: from /Users/salud/rails_app/vendor/bundler/ruby/2.5.0/gems/activesupport-5.2.2/lib/active_support/inflector/methods.rb:283:in `const_get' 3: from /Users/salud/rails_app/vendor/bundler/ruby/2.5.0/gems/bootsnap-1.3.2/lib/bootsnap/load_path_cache/core_ext/active_support.rb:56:in `load_missing_constant' 2: from /Users/salud/rails_app/vendor/bundler/ruby/2.5.0/gems/bootsnap-1.3.2/lib/bootsnap/load_path_cache/core_ext/active_support.rb:74:in `rescue in load_missing_constant' 1: from /Users/salud/rails_app/vendor/bundler/ruby/2.5.0/gems/bootsnap-1.3.2/lib/bootsnap/load_path_cache/core_ext/active_support.rb:8:in `without_bootsnap_cache' /Users/salud/rails_app/vendor/bundler/ruby/2.5.0/gems/bootsnap-1.3.2/lib/bootsnap/load_path_cache/core_ext/active_support.rb:74:in `block in load_missing_constant': uninitialized constant User (NameError)
したいこと

path指定なしでのbundle installではなく、pathを指定した状態で使用したいと考えています。
エラーの原因として考えうるものが分かりましたら、教えていただけますと幸いです。

よろしくお願い申し上げます。

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

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

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

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

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

Stan_Dma

2019/01/29 13:37

How Gemfile looks like? I dont know exactly, but can you try to install again after modifing the lines containing the version for ruby and bundler you want to use?
guest

回答1

0

ベストアンサー

TEENYバージョンが0なのは
ABIバージョンのTEENYは0に固定されるからです。

なので、vendor/bundle/ruby/2.5.0/以下にインストールされる事は不思議でもなんでもなく仕様です。

エラーメッセージを見ると
uninitialized constant User (NameError)との事なので
Userなる定数が見つからないということになります。

モデルクラスUserを作った覚えがあるのならばロードパスを確認する必要があるでしょう。
作った覚えがないのならばdeviseの設定を間違えている可能性があるように思います。

投稿2019/01/29 13:32

asm

総合スコア15147

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

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

salud

2019/01/30 02:53

ありがとうございます!無事、解決いたしました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問