たくろぐ!

世界一のチラ裏

【備忘録】Ruby on Railsでのエラーメッセージ

ルール

  • エラー内容
  • 発生した原因
  • 解消方法

全て記述すること。

Cloud9での環境構築は以下のエントリを参照した。

qiita.com

rvm関連

Unknown ruby interpreter version (do not know how to handle): hoge.

=> (原因)rvm use hoge --defaultを実行
すでにgemsetの名前にhogeが設定されているものだと思ってた。
=> (解消)rvm use 2.0.0-p648@hoge --defaultを実行

YAML safe loading is not available. Please upgrade psych to a version that supports safe loading (>= 2.0).

=> (原因)Railsのpsychというgemのバージョンが古い?
=> (解消)この辺やったようなやってないような。

d.hatena.ne.jp

Rubymine関連

qiita.com

Cloud9環境関連

There was an error(23).

There was an error(23).
Checking fallback: ftp://pyyaml.org/download/libyaml/yaml-0.1.6.tar.gz
Checking fallback: https://www.mirrorservice.org/sites/pyyaml.org/download/libyaml/yaml-0.1.6.tar.gz
No fallback URL could be found, try increasing timeout with:

    echo "export rvm_max_time_flag=20" >> ~/.rvmrc  

=> (原因)rvm pkg install libyamlを実行しても上記エラーでlibyamlが入らない。
=> (解消)rvmsudo rvm pkg install libyamlを実行すると正しくインストールされる。

※ちな、libyamlは

C言語YAMLファイルを簡単に扱うためのライブラリ

とのこと。

There was an error(23).

悪夢再び

There was an error(23).
Checking fallback: https://ftp.ruby-lang.org/pub/ruby/2.0/ruby-2.0.0-p648.tar.bz2
No fallback URL could be found, try increasing timeout with:

    echo "export rvm_max_time_flag=20" >> ~/.rvmrc

There has been an error fetching the ruby interpreter. Halting the installation.

=> (原因)rvm reinstall ruby-2.0.0-p648を実行した。
これしてもだめ
echo "export rvm_max_time_flag=20" >> ~/.rvmrc
これする
rvmsudo rvm reinstall ruby-2.0.0-p648を実行
=> (解消)これした
rvmsudo rvm reinstall ruby-2.0.0-p648を実行

Error running './configure --prefix=/usr/local/rvm/rubies/ruby-2.0.0-p648 --disable-install-doc --enable-shared'

Error running './configure --prefix=/usr/local/rvm/rubies/ruby-2.0.0-p648 --disable-install-doc --enable-shared',
please read /usr/local/rvm/log/1522984209_ruby-2.0.0-p648/configure.log
There has been an error while running configure. Halting the installation.  

=> (原因)rvmsudoしないでreinstallしたとき起こった。
=> (解消)rvmsudo rvm reinstall ruby-2.0.0-p648を実行

ln: failed to create symbolic link ‘/usr/local/rvm/environments/ruby-2.0.0-p648@hoge’: Permission denied

ruby-2.0.0-p648 - #gemset created /usr/local/rvm/gems/ruby-2.0.0-p648@hoge
ln: failed to create symbolic link ‘/usr/local/rvm/environments/ruby-2.0.0-p648@hoge’: Permission denied
ln: failed to create symbolic link ‘/usr/local/rvm/wrappers/ruby-2.0.0-p648@hoge’: Permission denied
ruby-2.0.0-p648 - #generating hoge wrappers..........
Error running 'run_gem_wrappers_regenerate',
please read /usr/local/rvm/log/1531742335_ruby-2.0.0-p648/gemset.wrappers.hoge.log
Using /usr/local/rvm/gems/ruby-2.0.0-p648 with gemset hoge
YAML safe loading is not available. Please upgrade psych to a version that supports safe loading (>= 2.0).
ec2-user:~/environment $ rvm gemset list

gemsets for ruby-2.0.0-p648 (found in /usr/local/rvm/gems/ruby-2.0.0-p648)
   (default)
   global
=> hoge

=> (原因)rvm use --create 2.0.0-p648@hoge --defaultするとエラーに見える。
=> (解消)gemset hogeに向いたので、そのまま続行?

WARNING: Please be aware that you just installed a ruby that is no longer maintained

WARNING: Please be aware that you just installed a ruby that is no longer maintained (2017-04-01), for a list of maintained rubies visit:

    http://bugs.ruby-lang.org/projects/ruby/wiki/ReleaseEngineering

Please consider upgrading to ruby-2.4.1 which will have all of the latest security patches.  

=> (原因)Rubyのバージョンが古いって怒られてる。
=> (解消)Rubyの最新バージョンを使う(やってない)。

ln: failed to create symbolic link ‘/usr/local/rvm/environments/ruby-2.4.1@hoge’: Permission denied

ruby-2.4.1 - #gemset created /usr/local/rvm/gems/ruby-2.4.1@hoge
ln: failed to create symbolic link ‘/usr/local/rvm/environments/ruby-2.4.1@hoge’: Permission denied
ln: failed to create symbolic link ‘/usr/local/rvm/wrappers/ruby-2.4.1@hoge’: Permission denied
ruby-2.4.1 - #generating hoge wrappers........
Error running 'run_gem_wrappers_regenerate',
please read /usr/local/rvm/log/1531741493_ruby-2.4.1/gemset.wrappers.hoge.log

=>(原因)rvm gemset create hogeしたら怒られた。
=>(解消)rvmsudoつける。

Warning: can not check /etc/sudoers for secure_path

Warning: can not check `/etc/sudoers` for `secure_path`, falling back to call via `/usr/bin/env`, this breaks rules from `/etc/sudoers`. Run:

    export rvmsudo_secure_path=1

to avoid the warning, put it in shell initialization file to make it persistent.

In case there is no `secure_path` in `/etc/sudoers`. Run:

    export rvmsudo_secure_path=0

to avoid the warning, put it in shell initialization file to make it persistent.

=>(原因)rvmsudoやるならいろいろ設定しとけって言われた。
=>(解消)rvm get head(そのバージョンの最新にする?)するって書いてあるけど、export rvmsudo_secure_path=1で解消された。

RVM [ja.nishimotz.com]

github.com

RVM: Ruby Version Manager - Upgrading RVM

Warning! PATH is not properly set up, '/usr/local/rvm/gems/ruby-2.4.1/bin' is not at first place.

Warning! PATH is not properly set up, '/usr/local/rvm/gems/ruby-2.4.1/bin' is not at first place.
         Usually this is caused by shell initialization files. Search for 'PATH=...' entries.
         You can also re-add RVM to your profile by running: 'rvm get stable --auto-dotfiles'.
         To fix it temporarily in this shell session run: 'rvm use ruby-2.4.1'.
         To ignore this error add rvm_silence_path_mismatch_check_flag=1 to your ~/.rvmrc file.

=> (原因)rvmsudo rvm gemset create hogeしたらデフォルトのRuby2.4.1に紐づいた。
=> (解消)rvm use ruby-2.0.0してからやる。

you can switch to '.ruby-version' using 'rvm rvmrc to ruby-version'

You are using '.rvmrc', it requires trusting, it is slower and it is not compatible with other ruby managers,
you can switch to '.ruby-version' using 'rvm rvmrc to ruby-version'
or ignore this warning with 'rvm rvmrc warning ignore /home/ec2-user/environment/.rvmrc',
'.rvmrc' will continue to be the default project file in RVM 1 and RVM 2,
to ignore the warning for all files run 'rvm rvmrc warning ignore all.rvmrcs'.

=> (原因).rvmrcファイルにRubyのバージョンを固定して、新しいターミナルを開いたら.rvmrcファイルは古いから新しくしろとエラー。
=> (解消)rvm rvmrc to ruby-versionした。

http://d.hatena.ne.jp/chronogazer/20130416/1366073534d.hatena.ne.jp

qiita.com

gem関連

Gem::LoadError Specified 'sqlite3' for database adapter

qiita.com

sqlite3のバージョンを1.4.0から1.3.13にする。

最初記事の通りに1.3.6でbundle installしたけどそれでも以下のエラーが出てダメだった。

Gem::Ext::BuildError: ERROR: Failed to build gem native extension.

最終的に1.3系の最新マイナーバージョンにしたらインストールできた。

LoadError: cannot load such file -- coffee_script

github.com

coffee-rails入れた。

couldn't find file 'jquery' with type 'application/javascript'

stackoverflow.com

まずはjquery-rails入れてbundle installした。

couldn't find file 'bootstrap' with type 'application/javascript'

stackoverflow.com

bootstrap-sassを入れてbundle installした。

cannot load such file -- bcrypt

stackoverflow.com

There was an error while trying to load the gem 'uglifier'. (Bundler::GemRequireError)

vagrant@ubuntu-xenial:~/tmp/RailsApp$ rails server
Traceback (most recent call last):
        31: from bin/rails:3:in `<main>'
        30: from bin/rails:3:in `load'
        29: from /home/vagrant/tmp/RailsApp/bin/spring:15:in `<top (required)>'
        28: from /home/vagrant/.rbenv/versions/2.5.0/lib/ruby/site_ruby/2.5.0/rubygems/core_ext/kernel_require.rb:70:in `require'
        27: from /home/vagrant/.rbenv/versions/2.5.0/lib/ruby/site_ruby/2.5.0/rubygems/core_ext/kernel_require.rb:70:in `require'
        26: from /home/vagrant/.rbenv/versions/2.5.0/lib/ruby/gems/2.5.0/gems/spring-2.0.2/lib/spring/binstub.rb:31:in `<top (required)>'
        25: from /home/vagrant/.rbenv/versions/2.5.0/lib/ruby/gems/2.5.0/gems/spring-2.0.2/lib/spring/binstub.rb:31:in `load'
        24: from /home/vagrant/.rbenv/versions/2.5.0/lib/ruby/gems/2.5.0/gems/spring-2.0.2/bin/spring:49:in `<top (required)>'
        23: from /home/vagrant/.rbenv/versions/2.5.0/lib/ruby/gems/2.5.0/gems/spring-2.0.2/lib/spring/client.rb:30:in `run'
        22: from /home/vagrant/.rbenv/versions/2.5.0/lib/ruby/gems/2.5.0/gems/spring-2.0.2/lib/spring/client/command.rb:7:in `call'
        21: from /home/vagrant/.rbenv/versions/2.5.0/lib/ruby/gems/2.5.0/gems/spring-2.0.2/lib/spring/client/rails.rb:28:in `call'
        20: from /home/vagrant/.rbenv/versions/2.5.0/lib/ruby/gems/2.5.0/gems/spring-2.0.2/lib/spring/client/rails.rb:28:in `load'
        19: from /home/vagrant/tmp/RailsApp/bin/rails:9:in `<top (required)>'
        18: from /home/vagrant/tmp/RailsApp/bin/rails:9:in `require'
        17: from /home/vagrant/.rbenv/versions/2.5.0/lib/ruby/gems/2.5.0/gems/railties-5.1.6/lib/rails/commands.rb:16:in `<top (required)>'
        16: from /home/vagrant/.rbenv/versions/2.5.0/lib/ruby/gems/2.5.0/gems/railties-5.1.6/lib/rails/command.rb:44:in `invoke'
        15: from /home/vagrant/.rbenv/versions/2.5.0/lib/ruby/gems/2.5.0/gems/railties-5.1.6/lib/rails/command/base.rb:63:in `perform'
        14: from /home/vagrant/.rbenv/versions/2.5.0/lib/ruby/gems/2.5.0/gems/thor-0.20.0/lib/thor.rb:387:in `dispatch'
        13: from /home/vagrant/.rbenv/versions/2.5.0/lib/ruby/gems/2.5.0/gems/thor-0.20.0/lib/thor/invocation.rb:126:in `invoke_command'
        12: from /home/vagrant/.rbenv/versions/2.5.0/lib/ruby/gems/2.5.0/gems/thor-0.20.0/lib/thor/command.rb:27:in `run'
        11: from /home/vagrant/.rbenv/versions/2.5.0/lib/ruby/gems/2.5.0/gems/railties-5.1.6/lib/rails/commands/server/server_command.rb:130:in `perform'
        10: from /home/vagrant/.rbenv/versions/2.5.0/lib/ruby/gems/2.5.0/gems/railties-5.1.6/lib/rails/commands/server/server_command.rb:130:in `tap'
         9: from /home/vagrant/.rbenv/versions/2.5.0/lib/ruby/gems/2.5.0/gems/railties-5.1.6/lib/rails/commands/server/server_command.rb:133:in `block in perform'
         8: from /home/vagrant/.rbenv/versions/2.5.0/lib/ruby/gems/2.5.0/gems/railties-5.1.6/lib/rails/commands/server/server_command.rb:133:in `require'
         7: from /home/vagrant/tmp/RailsApp/config/application.rb:7:in `<top (required)>'
         6: from /home/vagrant/.rbenv/versions/2.5.0/lib/ruby/site_ruby/2.5.0/bundler.rb:114:in `require'
         5: from /home/vagrant/.rbenv/versions/2.5.0/lib/ruby/site_ruby/2.5.0/bundler/runtime.rb:65:in `require'
         4: from /home/vagrant/.rbenv/versions/2.5.0/lib/ruby/site_ruby/2.5.0/bundler/runtime.rb:65:in `each'
         3: from /home/vagrant/.rbenv/versions/2.5.0/lib/ruby/site_ruby/2.5.0/bundler/runtime.rb:76:in `block in require'
         2: from /home/vagrant/.rbenv/versions/2.5.0/lib/ruby/site_ruby/2.5.0/bundler/runtime.rb:76:in `each'
         1: from /home/vagrant/.rbenv/versions/2.5.0/lib/ruby/site_ruby/2.5.0/bundler/runtime.rb:80:in `block (2 levels) in require'
/home/vagrant/.rbenv/versions/2.5.0/lib/ruby/site_ruby/2.5.0/bundler/runtime.rb:84:in `rescue in block (2 levels) in require': There was an error while trying to load the gem 'uglifier'. (Bundler::GemRequireError)
Gem Load Error is: Could not find a JavaScript runtime. See https://github.com/rails/execjs for a list of available runtimes.
Backtrace for gem load error is:
/home/vagrant/.rbenv/versions/2.5.0/lib/ruby/gems/2.5.0/gems/execjs-2.7.0/lib/execjs/runtimes.rb:58:in `autodetect'
/home/vagrant/.rbenv/versions/2.5.0/lib/ruby/gems/2.5.0/gems/execjs-2.7.0/lib/execjs.rb:5:in `<module:ExecJS>'
/home/vagrant/.rbenv/versions/2.5.0/lib/ruby/gems/2.5.0/gems/execjs-2.7.0/lib/execjs.rb:4:in `<top (required)>'
/home/vagrant/.rbenv/versions/2.5.0/lib/ruby/gems/2.5.0/gems/uglifier-4.1.19/lib/uglifier.rb:5:in `require'
/home/vagrant/.rbenv/versions/2.5.0/lib/ruby/gems/2.5.0/gems/uglifier-4.1.19/lib/uglifier.rb:5:in `<top (required)>'
/home/vagrant/.rbenv/versions/2.5.0/lib/ruby/site_ruby/2.5.0/bundler/runtime.rb:81:in `require'
/home/vagrant/.rbenv/versions/2.5.0/lib/ruby/site_ruby/2.5.0/bundler/runtime.rb:81:in `block (2 levels) in require'
/home/vagrant/.rbenv/versions/2.5.0/lib/ruby/site_ruby/2.5.0/bundler/runtime.rb:76:in `each'
/home/vagrant/.rbenv/versions/2.5.0/lib/ruby/site_ruby/2.5.0/bundler/runtime.rb:76:in `block in require'
/home/vagrant/.rbenv/versions/2.5.0/lib/ruby/site_ruby/2.5.0/bundler/runtime.rb:65:in `each'
/home/vagrant/.rbenv/versions/2.5.0/lib/ruby/site_ruby/2.5.0/bundler/runtime.rb:65:in `require'
/home/vagrant/.rbenv/versions/2.5.0/lib/ruby/site_ruby/2.5.0/bundler.rb:114:in `require'
/home/vagrant/tmp/RailsApp/config/application.rb:7:in `<top (required)>'
/home/vagrant/.rbenv/versions/2.5.0/lib/ruby/gems/2.5.0/gems/railties-5.1.6/lib/rails/commands/server/server_command.rb:133:in `require'
/home/vagrant/.rbenv/versions/2.5.0/lib/ruby/gems/2.5.0/gems/railties-5.1.6/lib/rails/commands/server/server_command.rb:133:in `block in perform'
/home/vagrant/.rbenv/versions/2.5.0/lib/ruby/gems/2.5.0/gems/railties-5.1.6/lib/rails/commands/server/server_command.rb:130:in `tap'
/home/vagrant/.rbenv/versions/2.5.0/lib/ruby/gems/2.5.0/gems/railties-5.1.6/lib/rails/commands/server/server_command.rb:130:in `perform'
/home/vagrant/.rbenv/versions/2.5.0/lib/ruby/gems/2.5.0/gems/thor-0.20.0/lib/thor/command.rb:27:in `run'
/home/vagrant/.rbenv/versions/2.5.0/lib/ruby/gems/2.5.0/gems/thor-0.20.0/lib/thor/invocation.rb:126:in `invoke_command'
/home/vagrant/.rbenv/versions/2.5.0/lib/ruby/gems/2.5.0/gems/thor-0.20.0/lib/thor.rb:387:in `dispatch'
/home/vagrant/.rbenv/versions/2.5.0/lib/ruby/gems/2.5.0/gems/railties-5.1.6/lib/rails/command/base.rb:63:in `perform'
/home/vagrant/.rbenv/versions/2.5.0/lib/ruby/gems/2.5.0/gems/railties-5.1.6/lib/rails/command.rb:44:in `invoke'
/home/vagrant/.rbenv/versions/2.5.0/lib/ruby/gems/2.5.0/gems/railties-5.1.6/lib/rails/commands.rb:16:in `<top (required)>'
/home/vagrant/tmp/RailsApp/bin/rails:9:in `require'
/home/vagrant/tmp/RailsApp/bin/rails:9:in `<top (required)>'
/home/vagrant/.rbenv/versions/2.5.0/lib/ruby/gems/2.5.0/gems/spring-2.0.2/lib/spring/client/rails.rb:28:in `load'
/home/vagrant/.rbenv/versions/2.5.0/lib/ruby/gems/2.5.0/gems/spring-2.0.2/lib/spring/client/rails.rb:28:in `call'
/home/vagrant/.rbenv/versions/2.5.0/lib/ruby/gems/2.5.0/gems/spring-2.0.2/lib/spring/client/command.rb:7:in `call'
/home/vagrant/.rbenv/versions/2.5.0/lib/ruby/gems/2.5.0/gems/spring-2.0.2/lib/spring/client.rb:30:in `run'
/home/vagrant/.rbenv/versions/2.5.0/lib/ruby/gems/2.5.0/gems/spring-2.0.2/bin/spring:49:in `<top (required)>'
/home/vagrant/.rbenv/versions/2.5.0/lib/ruby/gems/2.5.0/gems/spring-2.0.2/lib/spring/binstub.rb:31:in `load'
/home/vagrant/.rbenv/versions/2.5.0/lib/ruby/gems/2.5.0/gems/spring-2.0.2/lib/spring/binstub.rb:31:in `<top (required)>'
/home/vagrant/.rbenv/versions/2.5.0/lib/ruby/site_ruby/2.5.0/rubygems/core_ext/kernel_require.rb:70:in `require'
/home/vagrant/.rbenv/versions/2.5.0/lib/ruby/site_ruby/2.5.0/rubygems/core_ext/kernel_require.rb:70:in `require'
/home/vagrant/tmp/RailsApp/bin/spring:15:in `<top (required)>'
bin/rails:3:in `load'
bin/rails:3:in `<main>'
Bundler Error Backtrace:  

stackoverflow.com

=> (原因)node.jsを入れていない
=> (解消)sudo apt-get install nodejs

Gem Load Error is: Could not find a JavaScript runtime. See https://github.com/rails/execjs for a list of available runtimes.

/home/vagrant/.rbenv/versions/2.5.0/lib/ruby/site_ruby/2.5.0/bundler/runtime.rb:84:in `rescue in block (2 levels) in require': There was an error while trying to load the gem 'uglifier'.
Gem Load Error is: Could not find a JavaScript runtime. See https://github.com/rails/execjs for a list of available runtimes.
Backtrace for gem load error is:
/home/vagrant/.rbenv/versions/2.5.0/lib/ruby/gems/2.5.0/gems/execjs-2.7.0/lib/execjs/runtimes.rb:58:in `autodetect'
/home/vagrant/.rbenv/versions/2.5.0/lib/ruby/gems/2.5.0/gems/execjs-2.7.0/lib/execjs.rb:5:in `<module:ExecJS>'
/home/vagrant/.rbenv/versions/2.5.0/lib/ruby/gems/2.5.0/gems/execjs-2.7.0/lib/execjs.rb:4:in `<top (required)>'
/home/vagrant/.rbenv/versions/2.5.0/lib/ruby/gems/2.5.0/gems/uglifier-4.1.15/lib/uglifier.rb:5:in `require'
/home/vagrant/.rbenv/versions/2.5.0/lib/ruby/gems/2.5.0/gems/uglifier-4.1.15/lib/uglifier.rb:5:in `<top (required)>'
/home/vagrant/.rbenv/versions/2.5.0/lib/ruby/site_ruby/2.5.0/bundler/runtime.rb:81:in `require'
/home/vagrant/.rbenv/versions/2.5.0/lib/ruby/site_ruby/2.5.0/bundler/runtime.rb:81:in `block (2 levels) in require'
/home/vagrant/.rbenv/versions/2.5.0/lib/ruby/site_ruby/2.5.0/bundler/runtime.rb:76:in `each'
/home/vagrant/.rbenv/versions/2.5.0/lib/ruby/site_ruby/2.5.0/bundler/runtime.rb:76:in `block in require'
/home/vagrant/.rbenv/versions/2.5.0/lib/ruby/site_ruby/2.5.0/bundler/runtime.rb:65:in `each'
/home/vagrant/.rbenv/versions/2.5.0/lib/ruby/site_ruby/2.5.0/bundler/runtime.rb:65:in `require'
/home/vagrant/.rbenv/versions/2.5.0/lib/ruby/site_ruby/2.5.0/bundler.rb:114:in `require'
/home/vagrant/tmp/apitest/config/application.rb:7:in `<top (required)>'
/home/vagrant/.rbenv/versions/2.5.0/lib/ruby/gems/2.5.0/gems/spring-2.0.2/lib/spring/application.rb:92:in `require'
/home/vagrant/.rbenv/versions/2.5.0/lib/ruby/gems/2.5.0/gems/spring-2.0.2/lib/spring/application.rb:92:in `preload'
/home/vagrant/.rbenv/versions/2.5.0/lib/ruby/gems/2.5.0/gems/spring-2.0.2/lib/spring/application.rb:153:in `serve'
/home/vagrant/.rbenv/versions/2.5.0/lib/ruby/gems/2.5.0/gems/spring-2.0.2/lib/spring/application.rb:141:in `block in run'
/home/vagrant/.rbenv/versions/2.5.0/lib/ruby/gems/2.5.0/gems/spring-2.0.2/lib/spring/application.rb:135:in `loop'
/home/vagrant/.rbenv/versions/2.5.0/lib/ruby/gems/2.5.0/gems/spring-2.0.2/lib/spring/application.rb:135:in `run'
/home/vagrant/.rbenv/versions/2.5.0/lib/ruby/gems/2.5.0/gems/spring-2.0.2/lib/spring/application/boot.rb:19:in `<top (required)>'
/home/vagrant/.rbenv/versions/2.5.0/lib/ruby/site_ruby/2.5.0/rubygems/core_ext/kernel_require.rb:59:in `require'
/home/vagrant/.rbenv/versions/2.5.0/lib/ruby/site_ruby/2.5.0/rubygems/core_ext/kernel_require.rb:59:in `require'
-e:1:in `<main>'
Bundler Error Backtrace:
 (Bundler::GemRequireError)
        from /home/vagrant/.rbenv/versions/2.5.0/lib/ruby/site_ruby/2.5.0/bundler/runtime.rb:80:in `block (2 levels) in require'
        from /home/vagrant/.rbenv/versions/2.5.0/lib/ruby/site_ruby/2.5.0/bundler/runtime.rb:76:in `each'
        from /home/vagrant/.rbenv/versions/2.5.0/lib/ruby/site_ruby/2.5.0/bundler/runtime.rb:76:in `block in require'
        from /home/vagrant/.rbenv/versions/2.5.0/lib/ruby/site_ruby/2.5.0/bundler/runtime.rb:65:in `each'
        from /home/vagrant/.rbenv/versions/2.5.0/lib/ruby/site_ruby/2.5.0/bundler/runtime.rb:65:in `require'
        from /home/vagrant/.rbenv/versions/2.5.0/lib/ruby/site_ruby/2.5.0/bundler.rb:114:in `require'
        from /home/vagrant/tmp/apitest/config/application.rb:7:in `<top (required)>'
        from /home/vagrant/.rbenv/versions/2.5.0/lib/ruby/gems/2.5.0/gems/spring-2.0.2/lib/spring/application.rb:92:in `require'
        from /home/vagrant/.rbenv/versions/2.5.0/lib/ruby/gems/2.5.0/gems/spring-2.0.2/lib/spring/application.rb:92:in `preload'
        from /home/vagrant/.rbenv/versions/2.5.0/lib/ruby/gems/2.5.0/gems/spring-2.0.2/lib/spring/application.rb:153:in `serve'
        from /home/vagrant/.rbenv/versions/2.5.0/lib/ruby/gems/2.5.0/gems/spring-2.0.2/lib/spring/application.rb:141:in `block in run'
        from /home/vagrant/.rbenv/versions/2.5.0/lib/ruby/gems/2.5.0/gems/spring-2.0.2/lib/spring/application.rb:135:in `loop'
        from /home/vagrant/.rbenv/versions/2.5.0/lib/ruby/gems/2.5.0/gems/spring-2.0.2/lib/spring/application.rb:135:in `run'
        from /home/vagrant/.rbenv/versions/2.5.0/lib/ruby/gems/2.5.0/gems/spring-2.0.2/lib/spring/application/boot.rb:19:in `<top (required)>'
        from /home/vagrant/.rbenv/versions/2.5.0/lib/ruby/site_ruby/2.5.0/rubygems/core_ext/kernel_require.rb:59:in `require'
        from /home/vagrant/.rbenv/versions/2.5.0/lib/ruby/site_ruby/2.5.0/rubygems/core_ext/kernel_require.rb:59:in `require'
        from -e:1:in `<main>'

=> (原因)vagrant@ubuntu-xenial:~/tmp/apitest$ rails generate controller address showしたら、runtimeがないよって怒られた。
=> (解消)とりあえずgemにtherubyracerを入れて再実行。

qiita.com

note.mu

rails関連

already initialized constant, previous definition of 変数名(クラス名含む) was here

/home/vagrant/.rbenv/versions/x.x.x/lib/ruby/gems/x.x.x/gems/activesupport-x.x.x/lib/active_support/dependencies.rb:xxx: warning: already initialized constant 変数名(クラス名含む)
/home/vagrant/.rbenv/versions/x.x.x/lib/ruby/gems/x.x.x/gems/activesupport-x.x.x/lib/active_support/dependencies.rb:xxx: warning: previous definition of 変数名(クラス名含む) was here

こんなエラーも。

LoadError (Unable to autoload constant Namespace::XxxxxxController, expected /xxxxxx/xxxxx/app/controllers/name_space/xxxxx_controller.rb to define it):

=> (原因)不明
=> (解消)してない

Processing by Admin::ReportsController#search_driver as / LoadError (Unable to autoload constant Admin::ReportsController, expected /vagrant/tcsweb/app/controllers/admin/reports_controller.rb to define it):

Autoprefixer doesn’t support Node v4.2.6. Update it.

github.com

=> (原因)Ubuntuのデフォルトのnode.jsを使っていた?
=> (解消)以下を実施

curl -sL https://deb.nodesource.com/setup_10.x | sudo -E bash -
sudo apt-get install -y nodejs

No value provided for required arguments 'app_path'

rails new -BCMT --skip-coffee -d sqlite3
No value provided for required arguments 'app_path'  

=> (原因)プロジェクト名を指定していない。
=> (解消) rails new asagao -BCMT --skip-coffee -d sqlite3

ActiveRecord::PendingMigrationError

Started GET "/" for 192.168.33.1 at 2018-09-29 13:55:33 +0900
Cannot render console from 192.168.33.1! Allowed networks: 127.0.0.1, ::1, 127.0.0.0/127.255.255.255
  
ActiveRecord::PendingMigrationError (

Migrations are pending. To resolve this issue, run:

        bin/rails db:migrate RAILS_ENV=development

):
  
activerecord (5.1.6) lib/active_record/migration.rb:576:in `check_pending!'
activerecord (5.1.6) lib/active_record/migration.rb:553:in `call'
actionpack (5.1.6) lib/action_dispatch/middleware/callbacks.rb:26:in `block in call'
activesupport (5.1.6) lib/active_support/callbacks.rb:97:in `run_callbacks'
actionpack (5.1.6) lib/action_dispatch/middleware/callbacks.rb:24:in `call'
actionpack (5.1.6) lib/action_dispatch/middleware/executor.rb:12:in `call'
actionpack (5.1.6) lib/action_dispatch/middleware/debug_exceptions.rb:59:in `call'
web-console (3.7.0) lib/web_console/middleware.rb:135:in `call_app'
web-console (3.7.0) lib/web_console/middleware.rb:22:in `block in call'
web-console (3.7.0) lib/web_console/middleware.rb:20:in `catch'
web-console (3.7.0) lib/web_console/middleware.rb:20:in `call'
actionpack (5.1.6) lib/action_dispatch/middleware/show_exceptions.rb:31:in `call'
railties (5.1.6) lib/rails/rack/logger.rb:36:in `call_app'
railties (5.1.6) lib/rails/rack/logger.rb:24:in `block in call'
activesupport (5.1.6) lib/active_support/tagged_logging.rb:69:in `block in tagged'
activesupport (5.1.6) lib/active_support/tagged_logging.rb:26:in `tagged'
activesupport (5.1.6) lib/active_support/tagged_logging.rb:69:in `tagged'
railties (5.1.6) lib/rails/rack/logger.rb:24:in `call'
sprockets-rails (3.2.1) lib/sprockets/rails/quiet_assets.rb:13:in `call'
actionpack (5.1.6) lib/action_dispatch/middleware/remote_ip.rb:79:in `call'
actionpack (5.1.6) lib/action_dispatch/middleware/request_id.rb:25:in `call'
rack (2.0.5) lib/rack/method_override.rb:22:in `call'
rack (2.0.5) lib/rack/runtime.rb:22:in `call'
activesupport (5.1.6) lib/active_support/cache/strategy/local_cache_middleware.rb:27:in `call'
actionpack (5.1.6) lib/action_dispatch/middleware/executor.rb:12:in `call'
actionpack (5.1.6) lib/action_dispatch/middleware/static.rb:125:in `call'
rack (2.0.5) lib/rack/sendfile.rb:111:in `call'
railties (5.1.6) lib/rails/engine.rb:522:in `call'
puma (3.12.0) lib/puma/configuration.rb:225:in `call'
puma (3.12.0) lib/puma/server.rb:658:in `handle_request'
puma (3.12.0) lib/puma/server.rb:472:in `process_client'
puma (3.12.0) lib/puma/server.rb:332:in `block in run'
puma (3.12.0) lib/puma/thread_pool.rb:133:in `block in spawn_thread'

=> (原因)マイグレーションしてない。
=> (解消)rails db:migrate RAILS_ENV=developmentやる。

ActionController::InvalidAuthenticityToken in HeloController#index

Started POST "/helo/index" for 192.168.33.1 at 2018-09-17 19:39:30 +0900
Cannot render console from 192.168.33.1! Allowed networks: 127.0.0.1, ::1, 127.0.0.0/127.255.255.255
Processing by HeloController#index as HTML
  Parameters: {"input1"=>"taku"}
Can't verify CSRF token authenticity.
Completed 422 Unprocessable Entity in 1ms



ActionController::InvalidAuthenticityToken (ActionController::InvalidAuthenticityToken):

=> (原因)CSRF対策ができていない。
=> (解消)protect_from_forgeryを追加する。

Warning, new version of rvm available '1.29.4', you are using older version '1.29.3'.
You can disable this warning with:    echo rvm_autoupdate_flag=0 >> ~/.rvmrc
You can enable  auto-update  with:    echo rvm_autoupdate_flag=2 >> ~/.rvmrc
mkdir: cannot create directory ‘/usr/local/rvm/log/1531744116_ruby-2.0.0-p648’: Permission denied
tee: /usr/local/rvm/log/1531744116_ruby-2.0.0-p648/gem.install.rails-4.0.5.log: No such file or directory
installing gem rails -v 4.0.5 --no-ri --no-rdoc....
Error running 'command gem install rails -v 4.0.5 --no-ri --no-rdoc',
please read /usr/local/rvm/log/1531744116_ruby-2.0.0-p648/gem.install.rails-4.0.5.log

=> (原因)rvm gemset install rails -v 4.0.5したらエラー。
=> (解消)エラーはあるが、入ってるっぽい。

#

rails server
=> Booting WEBrick
=> Rails 4.0.5 application starting in development on http://0.0.0.0:3000
=> Run `rails server -h` for more startup options
=> Ctrl-C to shutdown server
[2018-07-16 13:14:51] INFO  WEBrick 1.3.1
[2018-07-16 13:14:51] INFO  ruby 2.0.0 (2015-12-16) [x86_64-linux]
[2018-07-16 13:14:51] INFO  WEBrick::HTTPServer#start: pid=24136 port=3000
^C[2018-07-16 13:15:40] INFO  going to shutdown ...
[2018-07-16 13:15:40] INFO  WEBrick::HTTPServer#start done.

=> (原因)rails serverを実行。
=> (解消)rails s -b $IP -p $PORTを実行。

rbenv関連

echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bash_profile

Updating rubygems-update
Fetching: rubygems-update-2.7.7.gem (100%)
ERROR:  While executing gem ... (Gem::FilePermissionError)
    You don't have write permissions for the /Library/Ruby/Gems/2.3.0 directory.

=> (原因)以下を実行すると、デフォルトで設定されているRubyに入ってるrbenvのパスが通る。

echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bash_profile  
echo 'eval "$(rbenv init -)"' >> ~/.bash_profile  
gem update --system  

=> (解消)パスが間違ってる。普通にgemをインストールしようとしても怒られるので以下で正しいパスを通す。

$ cd  
$ vi ~/.bash_profile  
export PATH="~/.rbenv/shims:/usr/local/bin:$PATH"  
eval "$(rbenv init -)"  
$ $ source ~/.bash_profile # 変更をPCに反映させる  

bundle installを実行すると以下のエラーが発生する

The dependency tzinfo-data (>= 0) will be unused by any of the platforms Bundler is installing for. Bundler is installing for ruby but the dependency is only for x86-mingw32, x86-mswin32, x64-mingw32, java. To add those platforms to the bundle, run `bundle lock --add-platform x86-mingw32 x86-mswin32 x64-mingw32 java`.
Fetching gem metadata from https://rubygems.org/..........
Fetching gem metadata from https://rubygems.org/.
Resolving dependencies...
Bundler could not find compatible versions for gem "activesupport":
  In snapshot (Gemfile.lock):
    activesupport (= 5.1.6)

  In Gemfile:
    rails (= 5.1.4) was resolved to 5.1.4, which depends on
      activesupport (= 5.1.4)

    coffee-rails (= 4.2.2) was resolved to 4.2.2, which depends on
      railties (>= 4.0.0) was resolved to 5.1.6, which depends on
        activesupport (= 5.1.6)

Running `bundle update` will rebuild your snapshot from scratch, using only
the gems in your Gemfile, which may resolve the conflict.

=> (原因)bundle installをすると、 bundle updateをしていないという警告が走る。
=> (解消)bundle updateを実行してから、bundle installを実行する。

can't find gem railties (= Railのバージョン) (Gem::GemNotFoundException)

ec2-user:~/environment $ rails _5.1.7_ new undifined_version
/usr/local/rvm/rubies/ruby-2.4.1/lib/ruby/site_ruby/2.4.0/rubygems.rb:271:in `find_spec_for_exe': can't find gem railties (= 5.1.7) (Gem::GemNotFoundException)
        from /usr/local/rvm/rubies/ruby-2.4.1/lib/ruby/site_ruby/2.4.0/rubygems.rb:299:in `activate_bin_path'
        from /usr/local/rvm/gems/ruby-2.4.1/bin/rails:23:in `<main>'
        from /usr/local/rvm/gems/ruby-2.4.1/bin/ruby_executable_hooks:15:in `eval'
        from /usr/local/rvm/gems/ruby-2.4.1/bin/ruby_executable_hooks:15:in `<main>'  

=> (原因)Railsのバージョンがインストールされてない。
=> (解消)バージョンを確認してrails newする。

rails -vでそのプロジェクトで指定したバージョンが表示されない

qiita.com

=> (原因)ローカルのruby環境に複数のバージョンのrailsがインストールされている?
=> (解消)上記の手順にてプロジェクトごとにrailsのバージョンをGemfileに指定してbundle install --path vendor/bundleする。

テスト関連

Failure:StaticPagesControllerTest#test_should_get_about

ec2-user:~/environment/example2 (static-pages) $ rails test
Running via Spring preloader in process 7108
Run options: --seed 8985

# Running:

Run options: --seed 8985

# Running:

FF

Failure:
StaticPagesControllerTest#test_should_get_about [/home/ec2-user/environment/example2/test/controllers/static_pages_controller_test.rb:19]:
Expected at least 1 element matching "title", found 0..
Expected 0 to be >= 1.


/home/ec2-user/environment/example2/vendor/bundle/ruby/2.4.0/gems/railties-5.1.4/lib/rails/test_unit/reporter.rb:70:in `method': undefined method `test_should_get_about' for class `Minitest::Result' (NameError)  

=> (原因)app/views/static_pages/home.html.erbが完全なhtml形式でない。
=> (解消)完全なhtml形式でerbファイルを作成する。

### Error:StaticPagesControllerTest#test_should_get_about

c2-user:~/environment/example2 (static-pages) $ rails test  
Running via Spring preloader in process 9908  
Run options: --seed 45204  
  
# Running:  
  
Run options: --seed 45204  
  
# Running:  
  
....EE  
  
Error:  
StaticPagesControllerTest#test_should_get_about:  
SyntaxError: /home/ec2-user/environment/example2/app/views/static_pages/about.html.erb:2: syntax error, unexpected tIVAR,   expecting ')'  
@output_buffer.safe_append='<!DOCTYPE html>  
              ^  
    test/controllers/static_pages_controller_test.rb:22:in `block in <class:StaticPagesControllerTest>'  
  
  
/home/ec2-user/environment/example2/vendor/bundle/ruby/2.4.0/gems/railties-5.1.4/lib/rails/test_unit/reporter.rb:70:in `method':   undefined method `test_should_get_about' for class `Minitest::Result' (NameError)  

=> (原因)<% provide(:title, "About" %> かっこの閉じ忘れ。
=> (解消)ちゃんと閉じる。

ec2-user:~/environment/example2 (static-pages) $ rails test  
Running via Spring preloader in process 10955  
Run options: --seed 17459  
  
# Running:  
  
Run options: --seed 17459

# Running:  
  
EE  
  
Error:  
StaticPagesControllerTest#test_should_get_contact:  
ArgumentError: Expecting a selector as the first argument  
    test/controllers/static_pages_controller_test.rb:30:in `block in <class:StaticPagesControllerTest>'  
  
  
/home/ec2-user/environment/example2/vendor/bundle/ruby/2.4.0/gems/railties-5.1.4/lib/rails/test_unit/reporter.rb:70:in `method':   undefined method `test_should_get_contact' for class `Minitest::Result' (NameError)  

=> (原因)テスティングファイルでassert_selectメソッドの引数(セレクタ)に:を入れていた。
=> (解消):を入れない。

コンソール関連

rails console --sandboxを抜けたらエラーメッセージが表示される。(詳細は以下)

/usr/local/rvm/rubies/ruby-2.4.1/lib/ruby/2.4.0/irb/ext/save-history.rb:98:in `initialize': Permission denied @ rb_sysopen - /usr/local/rvm/rubies/ruby-2.4.1/.irbrc_history (Errno::EACCES)  
        from /usr/local/rvm/rubies/ruby-2.4.1/lib/ruby/2.4.0/irb/ext/save-history.rb:98:in `open'  
        from /usr/local/rvm/rubies/ruby-2.4.1/lib/ruby/2.4.0/irb/ext/save-history.rb:98:in `save_history'  
        from /usr/local/rvm/rubies/ruby-2.4.1/lib/ruby/2.4.0/irb/ext/save-history.rb:64:in `block in extended'  
        from /usr/local/rvm/rubies/ruby-2.4.1/lib/ruby/2.4.0/irb.rb:433:in `block in run'  
        from /usr/local/rvm/rubies/ruby-2.4.1/lib/ruby/2.4.0/irb.rb:433:in `each'  
        from /usr/local/rvm/rubies/ruby-2.4.1/lib/ruby/2.4.0/irb.rb:433:in `run'  
        from /usr/local/rvm/rubies/ruby-2.4.1/lib/ruby/2.4.0/irb.rb:385:in `start'  
        from /home/ec2-user/environment/example2/vendor/bundle/ruby/2.4.0/gems/railties-5.1.4/lib/rails/commands/console/console_command.rb:62:in `start'  
        from /home/ec2-user/environment/example2/vendor/bundle/ruby/2.4.0/gems/railties-5.1.4/lib/rails/commands/console/console_command.rb:17:in `start'  
        from /home/ec2-user/environment/example2/vendor/bundle/ruby/2.4.0/gems/railties-5.1.4/lib/rails/commands/console/console_command.rb:97:in `perform'  
        from /home/ec2-user/environment/example2/vendor/bundle/ruby/2.4.0/gems/thor-0.20.0/lib/thor/command.rb:27:in `run'
        from /home/ec2-user/environment/example2/vendor/bundle/ruby/2.4.0/gems/thor-0.20.0/lib/thor/invocation.rb:126:in `invoke_command'  
        from /home/ec2-user/environment/example2/vendor/bundle/ruby/2.4.0/gems/thor-0.20.0/lib/thor.rb:387:in `dispatch'
        from /home/ec2-user/environment/example2/vendor/bundle/ruby/2.4.0/gems/railties-5.1.4/lib/rails/command/base.rb:63:in `perform'  
        from /home/ec2-user/environment/example2/vendor/bundle/ruby/2.4.0/gems/railties-5.1.4/lib/rails/command.rb:44:in `invoke'  
        from /home/ec2-user/environment/example2/vendor/bundle/ruby/2.4.0/gems/railties-5.1.4/lib/rails/commands.rb:16:in `<top (required)>'  
        from /home/ec2-user/environment/example2/vendor/bundle/ruby/2.4.0/gems/activesupport-5.1.4/lib/active_support/dependencies.rb:292:in `require'  
        from /home/ec2-user/environment/example2/vendor/bundle/ruby/2.4.0/gems/activesupport-5.1.4/lib/active_support/dependencies.rb:292:in `block in require'  
        from /home/ec2-user/environment/example2/vendor/bundle/ruby/2.4.0/gems/activesupport-5.1.4/lib/active_support/dependencies.rb:258:in `load_dependency'  
        from /home/ec2-user/environment/example2/vendor/bundle/ruby/2.4.0/gems/activesupport-5.1.4/lib/active_support/dependencies.rb:292:in `require'  
        from /home/ec2-user/environment/example2/bin/rails:9:in `<top (required)>'  
        from /home/ec2-user/environment/example2/vendor/bundle/ruby/2.4.0/gems/activesupport-5.1.4/lib/active_support/dependencies.rb:286:in `load'  
        from /home/ec2-user/environment/example2/vendor/bundle/ruby/2.4.0/gems/activesupport-5.1.4/lib/active_support/dependencies.rb:286:in `block in load'  
        from /home/ec2-user/environment/example2/vendor/bundle/ruby/2.4.0/gems/activesupport-5.1.4/lib/active_support/dependencies.rb:258:in `load_dependency'  
        from /home/ec2-user/environment/example2/vendor/bundle/ruby/2.4.0/gems/activesupport-5.1.4/lib/active_support/dependencies.rb:286:in `load'  
        from /usr/local/rvm/rubies/ruby-2.4.1/lib/ruby/site_ruby/2.4.0/rubygems/core_ext/kernel_require.rb:55:in `require'
        from /usr/local/rvm/rubies/ruby-2.4.1/lib/ruby/site_ruby/2.4.0/rubygems/core_ext/kernel_require.rb:55:in `require'
        from -e:1:in `<main>'  

=> (原因)設定ファイルを編集してエラー内容を許容する。
=> (解消)touch ~/.irbrcしてから、~/.irbrcファイルを以下のように編集する。

IRB.conf[:PROMPT_MODE] = :SIMPLE  
IRB.conf[:AUTO_INDENT_MODE] = false  
require 'irb/ext/save-history'  
IRB.conf[:SAVE_HISTORY] = 200  
IRB.conf[:HISTORY_FILE] = "#{ENV['HOME']}/.irb-history"  

Error:SiteLayoutTest#test_layout_links:

ec2-user:~/environment/example2 (modeling-users) $ rails test
Running via Spring preloader in process 4895
Started with run options --seed 3061

Run options: --seed 3061---=---=---=---=---=---=---=---=---=---=---=---=---=---=---=---=---=---] 0% Time: 00:00:00,  ETA: ??:??:??

# Running:

ERROR["test_layout_links", Minitest::Result, 0.017652772000019468]
 test_layout_links#Minitest::Result (0.02s)
ActiveRecord::RecordNotUnique:         ActiveRecord::RecordNotUnique: SQLite3::ConstraintException: column email is not unique: INSERT INTO "users" ("name", "email", "created_at", "updated_at", "id") VALUES ('MyString', 'MyString', '2018-05-11 00:42:39.721826', '2018-05-11 00:42:39.721826', 298486374)

E 12/0: [                                                                                      ] 0% Time: 00:00:00,  ETA: ??:??:??

Error:
SiteLayoutTest#test_layout_links:
ActiveRecord::RecordNotUnique: SQLite3::ConstraintException: column email is not unique: INSERT INTO "users" ("name", "email", "created_at", "updated_at", "id") VALUES ('MyString', 'MyString', '2018-05-11 00:42:39.721826', '2018-05-11 00:42:39.721826', 298486374)

Error:
SiteLayoutTest#test_layout_links:
NoMethodError: undefined method `each' for nil:NilClass

/home/ec2-user/environment/example2/vendor/bundle/ruby/2.4.0/gems/railties-5.1.4/lib/rails/test_unit/reporter.rb:70:in `method': undefined method `test_layout_links' for class `Minitest::Result' (NameError)  

=> (原因)test/fixtute/users.yamlにデフォルト値が入力されていて、新規作成した重複データのバリデーションに引っかかった。
=> (解消)fixtureのデフォルトのテストデータを削除する。

メッセージ以外でつまづいたところ

変更が即時反映されない

https://qiita.com/kamayla/items/6b97034b105a05dd6a58qiita.com

config/environment/development.rb

  config.cache_classes = false
  config.reload_classes_only_on_change = false

を入力する。