【備忘録】Rails Tutorial
Should Be Remembered Errors, etc...
rails tutorialに取り組んで. 調べたこと. どんなところでコケたのか. ミスの傾向など. 記録した備忘録です.
1.cannot load such file --bcrypt
gem ファイルに bcrypt を記述し、bundle install 後も rails server を起動したままだったため、発生したエラー
bundle install または bundle update ⇒ rails server再起動 ⇒ OK
※ gem ファイルは server と関連がある...?
2.heroku command cannot found
cloud9 にて、heroku をインストール出来ていなかったため発生したエラー.
下記を実行し、heroku --version でherokuのバージョンが表示されればOK.
$ source <(curl -sL https://cdn.learnenough.com/heroku_install)
以下を参考に.
3.heroku errors
branchを切ってmasterへ戻ると、またherokuコマンドが使えなくなっている現象.
調べると、cloud9ではnvm, npmでNode.jsのバージョン管理を行っているようで
使用しているnvm, npmのバージョンが自動で低く設定されてしまい、herokuコマンドが使用できなくなっていたようなので、低いバージョンのnvmをuninstall後、nvmのdefaultバージョン変更と
ec2-user:~/environment $ nvm alias default v10.14.1
default -> v10.14.1
npmのupdateを行いました.
ec2-user:~/environment/sample_app (master) $ npm update -g npm
/home/ec2-user/.nvm/versions/node/v10.14.1/bin/npm -> /home/ec2-user/.nvm/versions/node/v10.14.1/lib/node_modules/npm/bin/npm-cli.js
/home/ec2-user/.nvm/versions/node/v10.14.1/bin/npx -> /home/ec2-user/.nvm/versions/node/v10.14.1/lib/node_modules/npm/bin/npx-cli.js
+ npm@6.7.0
added 52 packages from 7 contributors, removed 13 packages and updated 41 packages in 6.681s
以下、参考にしました.
qiita.com
4.rails routes
ルーティングで困ったらrails routesコマンドでルーティングの状況確認可能.また、
$ rails routes | grep session
上記のコマンドラインのパイプ機能でsessionに関連するものだけを表示可能.
5.GETとPOSTの違いについて
上記の記事から引用
GET, POSTはHTTPメソッドの一部である.
普段から無意識にGETメソッドを使用している.
簡単な違い : リクエストの送信方法
- GET : URL
- POST : Body, Binary, Size, etc...
そのため
- GET : ブックマーク可能 (パラメータがURLに含まれるため)
- POST : ブックマーク不可能(パラメータがBodyに含まれるため)
また別の機会にHTTP(Web通信)関連の情報はまとめてみようと思います...
6.【9章】ログイン時におけるheader切り替えが動作していない
sessions.helper.rb の createメソッドに typo が合ったことで、正常に動作しなかったようです。(注意します)
7.Errno::EADDRINUSE
[16533] Puma starting in cluster mode...
[16533] * Version 3.9.1 (ruby 2.4.1-p111), codename: Private Caller
[16533] * Min threads: 5, max threads: 5
[16533] * Environment: development
[16533] * Process workers: 2
[16533] * Preloading application
[16533] * Listening on tcp://localhost:8080
Exiting</code>
/usr/local/rvm/gems/ruby-2.4.1/gems/puma-3.9.1/lib/puma/binder.rb:269:in `initialize': Address already in use - bind(2) for "127.0.0.1" port 8080 (Errno::EADDRINUSE)
railsサーバーを動作させた状態でターミナルを閉じた際、発生したエラー. 下記を参考に進めればOK.
8.【13章】rails aborted!
ActiveRecord::RecordInvalid: Validation failed: Email has already been taken
rails db:seedで怒られたときは下記を参考に
9.【13章】Listen error: unable to monitor directories for changes
ユーザー数のエラー(?)
micropostsのfixtureでユーザーを追加してから発生したエラー. 上記で設定値を変更してエラーは修正できる.