fc2ブログ

makopi23のブログ

makopi23が日々の生活で感じたことを気ままに綴るブログです。

"勉強会「HerokuではじめるRailsプログラミング入門 (テキスト輪読)」 第5章 モデルとテーブル"に参加しました

2013/8/24(土) "勉強会「HerokuではじめるRailsプログラミング入門 (テキスト輪読)」 第5章 モデルとテーブル" に参加してきました。

告知URL
http://www.groupy.jp/study_groups/1/study_group_schedules/3

以下の書籍をターゲットとした読書会なのです。

HerokuではじめるRailsプログラミング入門HerokuではじめるRailsプログラミング入門
(2013/03/15)
掌田 津耶乃

商品詳細を見る


参加者は6人かな。
場所は新宿のマルチメディアスクールWAVEです。会場の無料提供、感謝!

私、この勉強会が初のRailsです。
なんでRailsを始めようかと思ったのかというと、SQLアンチパターン読書会でO/Rマッパーの話がよく出てきて、Railsのマイグレーションの仕組みとかに興味を持ったからです。
あと、Rails独特の「設定より規約」というフレームワークの仕組みにも興味ありました。
ちなみに私が仕事で使ってる主なフレームワークはJavaのStruts1です。それと比較したいという思いもありました。

そんなわけでRailsの初心者向け勉強会が無いかなぁ、となんとなく探してたら見つかったのがこの勉強会だったのです。

この日のターゲットは5章「モデルとテーブル」です。さっそくマイグレーションですね。
写経で作成したアプリとソース一式は以下にアップしました。


■第3章: Railsアプリケーションを作ってみよう
・Herokuにデプロイしたアプリ:
 http://makopi23-rails-chapter03.herokuapp.com/
・ソース一式(Github):
 https://github.com/makopi23/Rails_Programming_Using_Heroku/tree/master/chapter03/myapp

■第4章: コントローラーとビューをマスターしよう
・Herokuにデプロイしたアプリ:
 http://makopi23-rails-chapter04.herokuapp.com/sample/index
・ソース一式(Github):
 https://github.com/makopi23/Rails_Programming_Using_Heroku/tree/master/chapter04/myapp

■第5章: モデルとテーブル
・Herokuにデプロイしたアプリ:
 http://makopi23-rails-chapter05.herokuapp.com/sample/index
・ソース一式(Github):
 https://github.com/makopi23/Rails_Programming_Using_Heroku/tree/master/chapter05/myapp



あと、参加者の吉村さんがアジェンダ資料を作成し説明してくださいました。
資料は以下に公開されています。
http://sasoonware.com/file/heroku_rails_05.pdf
http://sasoonware.com/file/heroku_rails_05.pptx


今回、環境面と書籍の誤植によりかなりハマったので、以下メモを残しておく。

■Railsのバージョン不一致により、Heroku上での実行時にエラー発生
書籍の1章(P.16)でRailsをインストールする説明があり、以下のように記載されています。

gem install rails


このままだと現状ではRails 4がインストールされています。
Rails 4だと、アプリをHerokuにデプロイしてもエラーになってしまいます。
なので、Rails 4をアンインストールし、Railsをバージョン指定でインストールしなおす必要がありました。

Rails 4をアンインストール。
gem uninstall rails
gem uninstall railties -v '4.00'


Rails 3.2.13をインストール。(バージョンを指定する必要がある)
gem install rails -v 3.2.13


■4-4節以降の、パーシャル使用時のパス指定が間違っている

4-4節で、P.177の最終行に以下の記述があります。
今回のサンプルでは「layouts」フォルダの中に、新たに「partials」というフォルダを作成することにしましょう。
そして、_myheader.html.erbと_myfooter.html.erbをこのフォルダ内に移動してください。


このフォルダ構成にした場合、リスト4-24以降のrenderのパス指定が間違っている。

■リスト4-24(P.179)
【誤】<%= render "partials/myheader" %>
【正】<%= render "layouts/partials/myfooter" %>


"layouts/"がこれ以降、すべて抜けているので注意。
読書会で質問させていただいて、無事解決しました。

他にも誤植がチラホラと。。。


★感想:
Railsのマイグレーションを初めて使ったわけなんですが、独特ですね~。
SQLを一切使わずにDBとやり取りすることができるということで、こんな仕組みもあるんだなぁ、と。
あと、全テーブルに"ID"というカラムが付与されますが、これはまさしくSQLアンチパターンの3章に出てきた「IDリクワイアド」!
RailsのID自動付与パターンは、「アンチパターンを使ってもいい場合」として紹介されていましたが、なるほどなぁ、と実感してみたり。

次の6章のタイトルは「モデルをさらに使いこなそう」ということで、Railsのマイグレーション機能に更に深入りできそうで楽しみです。

参加者の皆様、会場を無料提供してくださったマルチメディアスクールWAVEさま、ありがとうございました。

-->