LoginSignup
0
0

More than 5 years have passed since last update.

rails consoleでモデルからメソッドを呼び出そうとしたらハマった

Last updated at Posted at 2017-01-26

Ruby on RailsチュートリアルでUser.firstを行ったら大量のエラー

railsチュートリアルの2章(2.3.3)で

% rails console
irb(main):001:0> first_user = User.first

            〜略〜
 1591 /Users/home/.rbenv/versions/2.3.3/lib/ruby/gems/2.3.0/gems/activerecord-5.0.0.1/lib/active_record/relation/predicate_builder.rb
 1592 /Users/home/.rbenv/versions/2.3.3/lib/ruby/gems/2.3.0/gems/activerecord-5.0.0.1/lib/active_record/table_metadata.rb

[NOTE]
You may have encountered a bug in the Ruby interpreter or extension libraries.
Bug reports are welcome.
For details: http://www.ruby-lang.org/bugreport.html

のようなエラーが出ました。
設定でエラーの最初の部分が読めなかったのですが、gemに原因があるのではと当たりをつける。

google先生に聴いてみるとどうもsqliteに問題がありそう。
ということで……
# gem uninstall sqlite3
# gem install sqlite3
を実行。

再びrails console


% rails console                                                                                                    (git)-[master]
Running via Spring preloader in process 3605
Loading development environment (Rails 5.0.0.1)
Ignoring sqlite3-1.3.11 because its extensions are not built.  Try: gem pristine sqlite3 --version 1.3.11
Ignoring sqlite3-1.3.11 because its extensions are not built.  Try: gem pristine sqlite3 --version 1.3.11
Ignoring sqlite3-1.3.11 because its extensions are not built.  Try: gem pristine sqlite3 --version 1.3.11
Ignoring sqlite3-1.3.11 because its extensions are not built.  Try: gem pristine sqlite3 --version 1.3.11
Ignoring sqlite3-1.3.11 because its extensions are not built.  Try: gem pristine sqlite3 --version 1.3.11
Ignoring sqlite3-1.3.11 because its extensions are not built.  Try: gem pristine sqlite3 --version 1.3.11
No entry for terminal type "env/hooks";
using dumb terminal settings.
irb(main):001:0>

エラーの内容が変わっただけ…

あ、bundle installしてなかった。

% bundole install
Fetching gem metadata from https://rubygems.org/.........
Fetching version metadata from https://rubygems.org/..
Fetching dependency metadata from https://rubygems.org/.
Using rake 12.0.0
Using concurrent-ruby 1.0.4
Using i18n 0.7.0
Using minitest 5.10.1
Using thread_safe 0.3.5
            〜略〜
Bundle complete! 16 Gemfile dependencies, 62 gems now installed.
Gems in the group production were not installed.
Use `bundle show [gemname]` to see where a bundled gem is installed.

これは来たのでは!!
3度目の正直になると信じて!
だめでした…… 最初のエラーと同じものが出てしまった。振り出し……
sqliteもしくはgem周辺が怪しいので調べてみると、参考になりそうなものが見つかりました。

Rails5 + sqlite3のrails consoleでsqliteのエラーでハマったこと

参考サイトのようにbundle updateを試してみたら無事に解決しました。

まとめ

まずは環境を最新にしてみること!!
こんなオチですみません(汗

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0