191125_日報
取り組んだこと
- Google I/O 2009 - The Myth of the Genius Programmer
学んだこと
- Don't just fail. Fail quickly and try something differernt as fast as you can.
- The faster you can fail, the faster you can iterate and the faster you will learn and get better.
- Practice makes iteration-failure cycle first.
- Be influenced.
- the more that you are open to the influence of other people who might have a good idea.
Rails Girls Kyoto 10thに参加してきました
作成物
https://rails-girls-eri.herokuapp.com/
感想
オーガナイザーやコーチの方が暖かく迎えてくださり、楽しく学ぶことができた。
何かを新しく学ぶ時に、楽しさを感じることは大事だ。だが、学習方法がわからなかったり、学習内容への理解が困難に感じたりすると、楽しく学べなくなる。 そういったことを一切感じずに、楽しい時間を過ごせた理由として、まず冒頭のオープニングトークでアンチハラスメントポリシーが読み上げられたことにある。
正直、驚いた。同時に安心感も覚えた。殆ど知らない人が集まっているコミュニティーに参加するには勇気が必要だった中、沖に向かって泳いでいるような気分だったのが、アンチハラスメントポリシーが存在することで、実はそこは深さが浅い50mプールを泳いでいるのだと知れたからだ。純粋にRails Girlsが好きであったり、そのコミュニティーの活性化の為にサポートしてくださったり、Rubyが好きだったりする人でその空間が構成されていることが可視化された瞬間だった。
そのお陰で「◯◯◯なのにプログラミング学んで偉いね」といった面倒なことを言ってくる人がおらず、今回作るサンプルアプリケーションのコードの意味を1つ1つ丁寧に教えてくださり、Railsへの理解を深められた。 更には今日で終わりではなく、明日からも疑問に思うことがあれば気軽に聞いてねと言ってくださり、勇気付けられた。
ランチボックスもアフターパーティのご飯も、淹れてくださったコーヒーも、愛に包まれていた。
最後になりましたが、ご多忙な中、Rails Kyoto 10thを開催してくださりありがとうございました。 非常に有意義な時間を過ごせました。
191118_日報
取り組んだこと
- Rails Tutorial
- Ch.2: Toyアプリケーション
- Ch.3: ほぼ静的なページの作成(3.2.1まで)
- Bundleに関する記事の作成 eri2490.hatenablog.com
学んだこと
- scaffoldを利用したRailsでの簡単なWebアプリケーションの作成
- MVCモデルの概要
- RESTfulなアーキテクチャと関連するアクションの概要
- バリデーションを使い、データモデルに制限を掛ける
- 複数のデータモデル同士の関連づけ方法
- belongs_to
- has_many
- Railsのモデルのクラス階層
- ActiveRecord::Baseという基本クラスを継承している
- これにより、作成したモデルオブジェクトがデータベースにアクセスできる
- Railsのコントローラのクラス階層
- ActionController::Baseという基本クラスを継承している事で、以下の挙動か可能となる
- モデルオブジェクトの操作
- HTTPリクエストのフィルタリング
- ViewをHTMLとして出力する
- ApplicationControllerでの定義は、アプリケーションの全てのアクションに反映される
- Gemfileの存在意義
- bundle installとbundle updateの違い
気づきや疑問点
RailsのコンソールからRailsのアプリケーションとやり取りが可能になる、との事だが、rails cの利用回数が少ないので、まだイマイチ便利さがわからない。
bundle installをするとbundle updateをするように言われる
背景
Rails newで新しくWebアプリケーションを作成した後、Gemfileを更新し、bundle instal --without productionl
をすると、
If you are updating multiple gems in your Gemfile at once, try passing them all to `bundle update`
というエラーがRails Tutorialのサンプルアプリケーションに取り組み度、毎回出現する。
原因は、
You have requested: spring = 2.0.2 The bundle currently has spring locked at 2.1.0. Try running `bundle update spring`
という事で、springのバージョンが違う事に起因するようだ。
bundle update spring
をすると、
You have requested: minitest = 5.10.3 The bundle currently has minitest locked at 5.13.0. Try running `bundle update minitest`
と、今度はminitest
のバージョンが違うらしい。
If you are updating multiple gems in your Gemfile at once, try passing them all to `bundle update`
と、親切に複数のgemが関連した場合はbundle update
を実行してみてと教えてくれているので、その通りに実行する。
そうすると、Gemfileに記載した通りのgemとバージョンが正しくインストールされ、目的のbundle install --without production
も実行できた。
技術的に学べたこと
- Bundler
- Rubyアプリケーションのgemを管理する為のgem
- Gemfile
- gemをインストールする為の設計図
- gemfile.lock
- インストールしたgemの結果
bundle update
とbundle install
の違い- bundle updateは、Gemfileを元にgemのインストールを行い、その後gemfile.lockを更新する
- bundle installは、gemfile.lockを元にgemのインストールを行う。gemfile.lockに何も記述されていない、かつGemfileに記述がある場合は、そのgemと関連するgemを自動でインストールした後に、gemfile.lockを更新する
Rails - SendGrid - invalid response error
エラー内容
Signup有効化の為に受信したメールのActivateリンクをクリックすると
This page isn’t working u13692736.ct.sendgrid.net sent an invalid response. ERR_INVALID_REDIRECT
が表示されて、有効化されない。
解決方法
config/environments/production.rb
Rails.application.configure do . . host = '<your heroku app>.herokuapp.com' . . end
<your heroku app>
を該当のアプリケーション名に変更する。
参考にしたサイト
https://stackoverflow.com/questions/46751079/rails-sendgrid-invalid-response-error
Address already in use - bind(2) for "0.0.0.0" port 3000 (Errno::EADDRINUSE) というエラーが出た
エラー内容
タイトルの通り。
Address already in use - bind(2) for "0.0.0.0" port 3000 (Errno::EADDRINUSE)
取り組んだ事
$ lsof -i:3000
実行結果
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
ruby 99136 eri2490 12u IPv4 0x4ad22ad916893e63 0t0 TCP *:hbci (LISTEN)
ruby 99137 eri2490 12u IPv4 0x4ad22ad916893e63 0t0 TCP *:hbci (LISTEN)
$ kill 99137
その後、lsof -i:3000で確認
実行結果 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
ruby 99136 eri2490 12u IPv4 0x4ad22ad916893e63 0t0 TCP *:hbci (LISTEN)
rails s => Address already in use - bind(2) for "0.0.0.0" port 3000 (Errno::EADDRINUSE)
$ kill 99136
rails s => うまくいった🥰