新米パパの育児留学

新米パパの育児留学

未経験からエンジニアへの転職体験談など "リアル" な情報を発信

【30代未経験もok】IT/WEBエンジニアにおすすめの転職エージェント/スクール比較(侍の炎上を見て)
全くの未経験からIT/Webエンジニアに転職した私(30代)のロードマップ
30代未経験からIT / Webエンジニアへのリアルな転職体験談4 ”2度目の転職活動から入社へ”
本当に使えるものだけ!出産準備品・ベビー用品で実際に買ってよかったおすすめ10選
クロスバイク  LIG(リグ) MOVE 700Cの組み立て手順まとめ
Ruby初心者におすすめの学習方法「プロを目指す人のためのRuby入門」
Ruby on Rails チュートリアル 完全攻略 概要と演習解答総まとめ

30代未経験からwebエンジニアへ転職した私のキャリア構築プロセス(24週目)

f:id:mochikichi321:20171218132720j:plain

異業種から未経験でエンジニアへ転職し、Ruby(Ruby on Rails)エンジニアとして新しいキャリアがスタートしました。エンジニアとしてのキャリアを構築していくプロセスを綴っていきます。これからエンジニアを目指される方の参考になれば幸いです。

この記事を書く目的

・学んだことをアウトプットすることで理解を深める

・業務/学習の軌跡を残すことで自分が指導する立場になった時にどこでどういうことにつまづいたかがわかり指導しやすくなる

・エンジニアを目指してプログラミングを学習している方がエンジニアの仕事がどんなものかをイメージしやすくなる(会社によるので一例として)

業務

・[rails5.0化対応]ダイナミックルーティング廃止

・Rails5.0,Ruby2.3,2.4の新機能整理

・コードレビュー

学び

belongs_toのデフォルト挙動が変わった(Rails5.0)

  • required: true ⇒nilを許容しない(Rails5.0のデフォルト)
  • required: falsenilを許容する (Rails4.xのデフォルト)
  • 親テーブルのレコードがない状態で子テーブルのcreateは失敗する!
  • 親テーブルのレコードがない状態で子テーブルのcreateを成功させるためにはoptional: trueをつける必要がある(Rails4以前と同じ挙動)

DemoA:親テーブル
DemoB:子テーブル

親テーブルのレコードがない状態で子テーブルのcreateは失敗する!

class DemoA < ActiveRecord::Base

end
class DemoB < ActiveRecord::Base
  belongs_to :demo_a #optional 未指定
end
DemoA.inspect #=> “DemoA(id: integer, name: string)“
DemoB.inspect #=> “DemoB(id: integer, demo_a_id: integer)“
DemoB.create.inspect
 (0.2ms) BEGIN
 (0.2ms) ROLLBACK
#=> "#<DemoB id: nil, demo_a_id: 0>"

親テーブルのレコードがない状態で子テーブルのcreateを成功させるためにはoptional: trueをつける必要がある

class DemoA < ActiveRecord::Base

end
class DemoB < ActiveRecord::Base
  belongs_to :demo_a, optional: true
end
DemoA.inspect #=> “DemoA(id: integer, name: string)“
DemoB.inspect #=> “DemoB(id: integer, demo_a_id: integer)“
DemoB.create.inspect
 (0.2ms) BEGIN
 SQL (0.5ms) INSERT INTO `demo_bs` VALUES ()
 (0.2ms) ROLLBACK
#=> "#<DemoB id: 1, demo_a_id: 0>"

所感

Rails5.0へのバージョンアップに伴う変更点を整理中。デフォルト挙動が変わるようなものもあるので注意が必要だ。バージョンアップ情報のキャッチアップも結構大変だな。

GEEKLYのIT・WEB・ソーシャルゲーム業界への転職支援サービス

あわせて読みたい記事

mochikichi.hatenablog.com

mochikichi.hatenablog.com

mochikichi.hatenablog.com