191125_日報

取り組んだこと

  • Google I/O 2009 - The Myth of the Genius Programmer

www.youtube.com

学んだこと

  • 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を開催してくださりありがとうございました。 非常に有意義な時間を過ごせました。

f:id:eri2490:20191124141459j:plain
Rails Girls Kyoto 10th

191122_日報

取り組んだこと

  • Rails Tutorial
    • Ch.3: ほぼ静的なページの作成

学んだこと

  • Railsのビューは、ERB(埋め込みRuby)が使える
    • <% … %>は、中に書かれたコードを実行するだけで出力する
    • <%= … %>は、中のコードの実行結果が、その部分に挿入される
  • テスト駆動開発では、RED・GREEN・REFACTORのサイクルを回す
  • アプリケーションのページの共通部分をテンプレートに置くことで、コードの重複を避けられる

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 updatebundle 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 => うまくいった🥰

参考サイト

https://stackoverflow.com/questions/38460373/rails-5-address-already-in-use-bind2-for-127-0-0-1-port-3000