#NGK2014B でやるはずだったLT
結局お買い上げ「基礎Ruby on Rails (IMPRESS KISO SERIES)」
教育訓練感想文で必要なので、結局Amazonで発注しました。読んだ感じでは環境が古いため絶対お勧めという訳ではないのですが、実運用されている架空の*1コミュニティ(草野球チーム)のサイトの実装を一から十まで見せてくれるので、持っていて損は無い1冊だと思います。ちなみにRubyについても一通り解説があるので、とりあえずRailsだけはできるRubyistになりたい方にはお勧めです。
基礎Ruby on Rails (IMPRESS KISO SERIES)
- 作者: 黒田努,佐藤和人
- 出版社/メーカー: インプレスジャパン
- 発売日: 2007/10/25
- メディア: 単行本
- 購入: 8人 クリック: 106回
- この商品を含むブログ (42件) を見る
(2009/12/03追記)
本書のサポートサイトでフォローがあるようです。hostingしてるのは監修のオイアクスさん。*2
- 『基礎Ruby on Rails』 読者サポートページ - Ruby on Rails with OIAX
- 『基礎Ruby on Rails』 初版第1刷 正誤表 - Ruby on Rails with OIAX
- 『基礎Ruby on Rails』 初版第2刷 正誤表 - Ruby on Rails with OIAX
また、題材に取り上げられているサイトのRails-2.2対応の作業記録が著者によってなされています。ちょっとでも実力がある方なら紙媒体でなくてもフォローがあるので大丈夫でしょう。i18nネタもやってるようです。*3
それから、ActiveRecord#validation_eachの例で271ページにちょっとしたネタが載ってます。「ぷぷぷっ」って感じw
という訳で良書なんですが…
正誤表ですが、じっくり読まなくてもtypoが見つかったので出版社のインプレスジャパンは何やってるんだろうって感じですけどね。spell checkerくらい掛ければいいのに。*4
同僚が買ったPDF版では正誤表の反映がされてないとのこと。改訂版はRails-2.x対応しないと出せないかもしれないけど現行版のPDFバージョンくらい正誤表の反映をやっといて欲しいというのが正直なところ。
正誤表の反映くらい、多く見積もっても契約社員で5人日くらいでできるでしょ?はっきり言って出版社の姿勢を疑います。*5
インプレスジャパンはアレなので…
オイアクスさんの読者サポートにメールを投げてみました。どんな回答が来るか楽しみww
From babydaemons@(snip) To kiso-rails@oiax.jp 日付 2009年12月3日14:50 件名 『基礎Ruby on Rails』 初版第1刷 正誤表について 『基礎Ruby on Rails』読者サポートご担当様 (snip)と申します。お世話になります。 http://www.oiax.jp/books/kiso_rails/errata-1-1.html から正誤表を印刷しようとしたのですが、ブラウザの 画面イメージどおりの印刷が不可能なので断念しました。 正誤表をモノクロプリンタでの印刷を考慮したPDFで 作成していただけると幸いです。 また、可能であればPDF形式で印刷可能なA4シール用紙に 訂正文章を印刷して切り貼りして書籍に物理的にパッチを 当てれるような仕組みを用意していただけると本当に助かります。 #紙テープ時代のパッチみたいですが。 お忙しいとは存じますが、ご検討頂けると幸いです。 宜しくお願いいたします。 P.S. 本書についてブログを書きましたので、よろしければご覧下さい。 http://d.hatena.ne.jp/babydaemons/20091202/1259738528
それで回答をいただきました
それもわずか16分後です!速いっっっっ!!!(from 株式会社オイアクス代表取締役黒田努様)
さすがはWeb系業界人。でも代表取締役なのにこのスピード感は尋常じゃないです。
PDF版正誤表についてはComming Soon!ということでした。
さらにReplyいただきました
ブログのご指摘はもっともです。できれば、<del> ~ </del> せずに、そのまま掲載を続けていただきたく思います。
という訳なので取り消し線は削除しました。
#もし、このエントリが勝手mirrorされててgitやSubVersionで
#リポジトリ管理されてたりしてたら履歴が相当楽しいことになってるなw
確認画面を作ってDBに登録してみた
もう1ヶ月ほど昔になってしまいましたが、確認画面を作ってみた - babydaemonsの日記のあとで確認画面の後でDBに登録する例を作ってみました。
お題はお問い合わせフォーム(メール送信なし)です。
お持ち帰りはこちらからどうぞ。
たぶん、つっこみどころ満載ですので、コメント・トラバよろしくお願いします。m(_ _)m
ステップ実行に成功
環境は?
NetBeans IDE 6.7.1でステップ実行できました。環境はこことほぼ同じですが、NetBeansはruby-debug-ide-0.3.xしか対応してないとあちこちで見たので、一応、
$ gem install ruby-debug-ide -v 0.3.4
しておいたのですが・・・
実行してみると
実際にNetBeansでステップ実行してみると、
Fast Debugger (ruby-debug-ide 0.4.9) listens on :2202 => Booting WEBrick => Rails 2.3.4 application starting on http://0.0.0.0:3000 => Call with -d to detach => Ctrl-C to shutdown server [2009-09-25 14:32:46] INFO WEBrick 1.3.1
使ってみると
ステップ実行に成功
Aptana Studio 1.5 + RadRailsで下記の環境で開発中です。
Rubyのバージョンは?
Rubyは1.8.7-p174のmswin32版。
[c:\] $ ruby --version ruby 1.8.7 (2009-06-12 patchlevel 174) [i386-mswin32]
Gemは何を入れてるの?
インストールしたgemは下記のとおり。
[c:\] $ gem list *** LOCAL GEMS *** actionmailer (2.3.4) actionpack (2.3.4) activerecord (2.3.4) activeresource (2.3.4) activesupport (2.3.4) amatsuda-i18n_generators (0.6.0) cgi_multipart_eof_fix (2.5.0) columnize (0.3.1) fastthread (1.0.1) gem_plugin (0.2.3) gettext (2.0.4) jpmobile (0.0.6) linecache (0.43) locale (2.0.4) mongrel (1.1.5) mysql (2.7.3) rack (1.0.0) rails (2.3.4) rake (0.8.7) ruby-debug (0.10.3) ruby-debug-base (0.10.3) ruby-debug-ide (0.4.9) sqlite3-ruby (1.2.5)
でも・・・
Thinよりさらに高速と謳われているEbbを使ってみたかったのだが・・・
こことかこことか見て、挑戦してみたが見事に惨敗。。。orz
おうちに帰ってよーくsource code追ってみます。
#CygwinかMinGWに逃げようかなー。
[E:\ruby-1.8.7-p174\lib\ruby\1.8] $ gem install ebb Building native extensions. This could take a while... ERROR: Error installing ebb: ERROR: Failed to build gem native extension. E:/ruby-1.8.7-p174/bin/ruby.exe extconf.rb checking for sys/select.h... no checking for poll.h... no checking for sys/epoll.h... no checking for sys/event.h... no checking for port.h... no checking for sys/inotify.h... no creating Makefile nmake Microsoft(R) Program Maintenance Utility Version 8.00.50727.42 Copyright (C) Microsoft Corporation. All rights reserved. cl -nologo -I. -IE:/ruby-1.8.7-p174/lib/ruby/1.8/i386-mswin32 -IE:/ruby-1.8.7-p174/lib/ruby/1.8/i386-mswin32 -I. -MD -Zi -O2b2xg- -G6 -IE:/ruby-1.8.7-p174/lib/ruby/gems/1.8/gems/ebb-0.3.2/libev -DEV_USE_MONOTONIC=0 -DRUBY_VERSION_CODE=187 -c -Tcebb_ffi.c cl : コマンド ライン warning D9035 : オプション 'Og-' の使用は現在推奨されていません。今後のバージョンからは削除されます。 cl : コマンド ライン warning D9002 : 不明なオプション '-G6' を無視します ebb_ffi.c E:\ruby-1.8.7-p174\lib\ruby\gems\1.8\gems\ebb-0.3.2\libev\ev.c(339) : warning C4005: 'inline' : マクロが再定義されました。 e:\ruby-1.8.7-p174\lib\ruby\1.8\i386-mswin32\config.h(84) : 'inline' の 前の定義を確認してください e:\ruby-1.8.7-p174\lib\ruby\gems\1.8\gems\ebb-0.3.2\libev\ev_win32.c(116) : warning C4996: '_ftime64' が古い形式として宣言されました。 C:\Program Files\Microsoft Visual Studio 8\VC\INCLUDE\sys/timeb.h(152) : '_ftime64' の宣言を確認してください。 メッセージ: 'This function or variable may be unsafe. Consider using _ftime64_s instead. To disable deprecation, use _CRT_SECURE_NO_DEPRECATE. See online help for details.' ebb_ffi.c(135) : error C2275: 'ebb_connection' : この型は演算子として使用できません e:\ruby-1.8.7-p174\lib\ruby\gems\1.8\gems\ebb-0.3.2\ext\ebb.h(30) : 'ebb_connection' の宣言を確認してください。 ebb_ffi.c(135) : error C2065: 'connection' : 定義されていない識別子です。 ebb_ffi.c(136) : warning C4047: '=' : 間接参照のレベルが 'int' と 'ebb_connection *' で異なっています。 ebb_ffi.c(137) : warning C4047: 'return' : 間接参照のレベルが 'ebb_connection *' と 'int' で異なっています。 ebb_ffi.c(188) : error C2275: 'VALUE' : この型は演算子として使用できません E:\ruby-1.8.7-p174\lib\ruby\1.8\i386-mswin32\ruby.h(86) : 'VALUE' の宣言を確認してください。 ebb_ffi.c(188) : error C2146: 構文エラー : ';' が、識別子 'f' の前に必要です。 ebb_ffi.c(188) : error C2065: 'f' : 定義されていない識別子です。 ebb_ffi.c(193) : error C2143: 構文エラー : ';' が '型' の前にありません。 ebb_ffi.c(195) : error C2065: 'i' : 定義されていない識別子です。 ebb_ffi.c(230) : error C2275: 'VALUE' : この型は演算子として使用できません E:\ruby-1.8.7-p174\lib\ruby\1.8\i386-mswin32\ruby.h(86) : 'VALUE' の宣言を確認してください。 ebb_ffi.c(230) : error C2146: 構文エラー : ';' が、識別子 'env' の前に必要です。 ebb_ffi.c(230) : error C2065: 'env' : 定義されていない識別子です。 ebb_ffi.c(239) : error C2275: 'VALUE' : この型は演算子として使用できません E:\ruby-1.8.7-p174\lib\ruby\1.8\i386-mswin32\ruby.h(86) : 'VALUE' の宣言を確認してください。 ebb_ffi.c(239) : error C2146: 構文エラー : ';' が、識別子 'method' の前に必要です。 ebb_ffi.c(239) : error C2065: 'method' : 定義されていない識別子です。 ebb_ffi.c(262) : error C2143: 構文エラー : ';' が '型' の前にありません。 ebb_ffi.c(263) : error C2065: 'server_port' : 定義されていない識別子です。 ebb_ffi.c(264) : warning C4047: '関数' : 間接参照のレベルが 'const char *' と 'int' で異なっています。 ebb_ffi.c(264) : warning C4024: 'rb_str_new2' : の型が 1 の仮引数および実引数と 異なります。 ebb_ffi.c(267) : error C2143: 構文エラー : ';' が '型' の前にありません。 ebb_ffi.c(268) : error C2065: 'client_ip' : 定義されていない識別子です。 ebb_ffi.c(269) : warning C4047: '関数' : 間接参照のレベルが 'const char *' と 'int' で異なっています。 ebb_ffi.c(269) : warning C4024: 'rb_str_new2' : の型が 1 の仮引数および実引数と異なります。 ebb_ffi.c(272) : error C2275: 'VALUE' : この型は演算子として使用できません E:\ruby-1.8.7-p174\lib\ruby\1.8\i386-mswin32\ruby.h(86) : 'VALUE' の宣言を確認してください。 ebb_ffi.c(272) : error C2146: 構文エラー : ';' が、識別子 'version' の前に必要です。 ebb_ffi.c(272) : error C2065: 'version' : 定義されていない識別子です。 ebb_ffi.c(315) : error C2143: 構文エラー : ';' が '型' の前にありません。 ebb_ffi.c(316) : warning C4047: '==' : 間接参照のレベルが 'int' と 'void *' で異なっています。 ebb_ffi.c(319) : error C2275: 'VALUE' : この型は演算子として使用できません E:\ruby-1.8.7-p174\lib\ruby\1.8\i386-mswin32\ruby.h(86) : 'VALUE' の宣言を確認してください。 ebb_ffi.c(319) : error C2146: 構文エラー : ';' が、識別子 'body' の前に必要です。 ebb_ffi.c(319) : error C2065: 'body' : 定義されていない識別子です。 ebb_ffi.c(331) : error C2223: '->fd' : 左側が構造体か共用体に対するポインタではありません。 ebb_ffi.c(331) : warning C4047: '関数' : 間接参照のレベルが 'int' と 'fd_set *'で異なっています。 ebb_ffi.c(331) : warning C4024: 'rb_w32_fdset' : の型が 1 の仮引数および実引数と異なります。 ebb_ffi.c(331) : error C2198: 'rb_w32_fdset' : 呼び出しに対する引数が少なすぎます。 ebb_ffi.c(332) : error C2223: '->fd' : 左側が構造体か共用体に対するポインタではありません。 ebb_ffi.c(332) : warning C4047: '関数' : 間接参照のレベルが 'int' と 'fd_set *'で異なっています。 ebb_ffi.c(332) : warning C4024: 'rb_thread_select' : の型が 1 の仮引数および実引数と異なります。 ebb_ffi.c(332) : error C2198: 'rb_thread_select' : 呼び出しに対する引数が少なすぎます。 ebb_ffi.c(334) : error C2223: '->read_watcher' : 左側が構造体か共用体に対するポインタではありません。 ebb_ffi.c(334) : warning C4022: 'ev_invoke' : 2 番目の実引数のポインタの型が、仮引数のポインタの型と異なります。 ebb_ffi.c(334) : error C2198: 'ev_invoke' : 呼び出しに対する引数が少なすぎます。 ebb_ffi.c(360) : error C2275: 'VALUE' : この型は演算子として使用できません E:\ruby-1.8.7-p174\lib\ruby\1.8\i386-mswin32\ruby.h(86) : 'VALUE' の宣言を確認してください。 ebb_ffi.c(360) : error C2146: 構文エラー : ';' が、識別子 'rb_request' の前に必要です。 ebb_ffi.c(360) : error C2065: 'rb_request' : 定義されていない識別子です。 ebb_ffi.c(368) : error C2275: 'VALUE' : この型は演算子として使用できません E:\ruby-1.8.7-p174\lib\ruby\1.8\i386-mswin32\ruby.h(86) : 'VALUE' の宣言を確認してください。 ebb_ffi.c(368) : error C2146: 構文エラー : ';' が、識別子 'rb_connection' の前に必要です。 ebb_ffi.c(368) : error C2065: 'rb_connection' : 定義されていない識別子です。 ebb_ffi.c(395) : error C2275: 'VALUE' : この型は演算子として使用できません E:\ruby-1.8.7-p174\lib\ruby\1.8\i386-mswin32\ruby.h(86) : 'VALUE' の宣言を確認してください。 ebb_ffi.c(395) : error C2146: 構文エラー : ';' が、識別子 'rb_connection' の前に必要です。 ebb_ffi.c(476) : error C2143: 構文エラー : ';' が '型' の前にありません。 ebb_ffi.c(482) : error C2065: 'r' : 定義されていない識別子です。 ebb_ffi.c(487) : error C2061: 構文エラー : 識別子 'connection_schedule_close' ebb_ffi.c(487) : error C2059: 構文エラー : ';' ebb_ffi.c(487) : error C2059: 構文エラー : '型' ebb_ffi.c(552) : error C2065: 'connection_schedule_close' : 定義されていない識別子です。 ebb_ffi.c(552) : warning C4047: '関数' : 間接参照のレベルが 'VALUE (__cdecl *)()' と 'int' で異なっています。 ebb_ffi.c(552) : warning C4024: 'rb_define_singleton_method' : の型が 3 の仮引数および実引数と異なります。 NMAKE : fatal error U1077: '"C:\Program Files\Microsoft Visual Studio 8\VC\BIN\cl.EXE"' : Stop. Gem files will remain installed in E:/ruby-1.8.7-p174/lib/ruby/gems/1.8/gems/ebb-0.3.2 for inspection. Results logged to E:/ruby-1.8.7-p174/lib/ruby/gems/1.8/gems/ebb-0.3.2/ext/gem_make.out