『基礎Ruby on Rails』 読者サポートページ

このページは、弊社監修の『基礎Ruby on Rails』(2007年10月、インプレスジャパン刊)の読者サポートページです。

読者の皆様からお寄せいただいた質問(一部、筆者による想定質問を含みます)に「Q&A」形式でお答えいたします。

なお、本書の出版後に見つかった記述の誤りに関しては、正誤表をご覧ください。(読者の皆様さまにご迷惑をお掛けしたことを深くお詫びいたします。)

Q & A

Q. 38ページからの説明に従って新規のRailsアプリケーションを作成して、WEBRickを起動しました。 ブラウザで「Welcome aboard」のページは表示できましたが、44ページのエラー画面が表示されません。 WEBRickのログを見ると「ArgumentError: Anonymous modules have no name to be referenced by」というエラーが出ています。

A. Railsアプリケーションのルートディレクトリから更に script ディレクトリに移ってから、「ruby server」コマンドでWEBRickを起動していませんか。 この方法でも静的なページを表示することができますが、動的なページを表示しようとすると、「ArgumentError」が発生します。

Railsルートディレクトリ(本書44ページのケースでは、C:\rails\asagao)において「ruby script\server」コマンドでWEBRickを起動してください。

Q. 166ページから179ページで説明されている LessonController のソースコードとそれに対応するテンプレートが、付属CD-ROMに収録されていません。

A. 大変申し訳ございません。手違いにより、付属CD-ROMの chapter3 ディレクトリの中身に一部欠落がございました。 このディレクトリ全体をZIP形式でまとめましたので、お手数をお掛けしますが次のリンクよりダウンロードし、展開してご利用ください。 (読者の方から「Lesson用のページをブラウザで開くと文字化けする」とのご指摘があったのを受け、2007年12月22日に一部修正したものをアップロードしました。)

Q. 224-225ページのコラム「データベースの確認」で「set character set sjis;」コマンドを実行しておくと漢字やひらがなが文字化けしない、と書いてありますが、その通りやっても文字化けします。

A. データがUTF-8で格納されていない可能性があります。 207ページを参照して、config\database.yml に「encoding: utf8」の行を追加してあるかどうか確認した上で、フィクスチャの投入をやり直してみてください。

Q. Linux 環境で学習しています。 ruby script/server で WEBRick を起動し、サンプルサイトのトップページを開くと、"No such file or directory - /tmp/mysql.sock" というエラーメッセージが表示されます。

A. config\database.yml の「host: localhost」をすべて「host: 127.0.0.1」に変更して、WEBRick を再起動してみてください。

Q. 本書は Rails 1.2.3 に基づいていますが、それ以降のバージョンで記述内容が変わった点はありますか。

A1. Rails 1.2.4 で「RESTフル」なルーティングを使用した場合の URL のフォーマットが変更され、セミコロン(;)の代わりにスラッシュ(/)を使用することになりました。 たとえば、MembersControlleredit アクションに対応する URL のパスは、Rails 1.2.3 までは「/members/123;edit」でしたが、1.2.4 以降は「/members/123/edit」となります。 Rails 1.2.4 以降で開発する場合は、Chapter 9「REST」の記述を読む際に URL 中のセミコロンをすべてスラッシュで置き換える必要があります。

なお、CD-ROM の chapter9 ディレクトリに収録したアプリケーションは、Rails 1.2.4 以降の Rails 1.2.x でも動作しますが、 上記の変更によってルーティングの動作を調べる機能テスト(AccountControllerTest, BlogEntriesControllerTest, MembersControllerTesttest_routing)が失敗します。

A2. Rails 2.0 で paginate メソッドが廃止され、ページネーション機能がプラグインとして提供される予定です。 このため、Rails 1.2.4 以降では、paginate メソッドを使用していると、「DEPRECATION WARNING: paginate is deprecated and will be removed from Rails 2.0」という警告が表示されます。 本書では、app/controllers/admin/articles_controller.rb の15行目で paginate メソッドが使用されています。


本書の内容についてご質問は、kiso-rails@oiax.jp までメールでお送りください。 返信には、しばらくお時間をいただく場合がございます。また、本書の内容を越える質問にはお答えしかねます。あらかじめご了承ください。