表紙

『Rails3レシピブック』サポートページ

書誌情報 | 正誤表 | ご意見・誤記の報告等

Ruby on Railsの定番リファレンスとして好評を博したレシピブックが、装いも新たにRails 3版として登場。日本のRails開発の第一人者である松田明氏を加え、Rails 3.1に世界最速対応いたしました。定番からRails 3系の新機能まで、これからのRailsの使い方がわかります。

書誌情報

タイトル『Rail3レシピブック 190の技』
出版社ソフトバンククリエイティブ
著者高橋征義/松田明/諸橋恭介著
サイズ種別A5/1色
ページ数496ページ
ISBN978-4-7973-6382-1
本体価格3,129円(税込)
出版日2011年7月22日
出版社紹介ページURLhttp://www.sbcr.jp/products/4797363821.html

正誤表(初版に含まれるもの)

Recipe 001 rvmインストール方法の間違い

インストール用のコードに誤りがあり、必要なスペースが落ちてしまっていました。

bash < <(curl -s https://rvm.beginrescueend.com/install/rvm)

bash <<(curl -s https://rvm.beginrescueend.com/install/rvm)

Recipe 005 generateの綴りに間違いがある(p.13)

コマンド入力例のgenerateの綴りに間違いがあります。

$ rails generate scaffold モデル名 カラム名と型の並び

$ rails genarate scaffold モデル名 カラム名と型の並び

Recipe 021 default_url_optionsincludeの順が逆(p.43)

一つ目のコードリスト app/models/social_service.rb に誤りがありました。 default_url_optionsを設定する前に、無名モジュールをincludeする必要があります。

class SocialService
  include Rails.application.routes.url_helpers
  self.default_url_options = {:host => 'www.example.com'}
end

class SocialService
  self.default_url_options = {:host => 'www.example.com'}
  include Rails.application.routes.url_helpers
end

Recipe 029 ハッシュが1.9記法になっている(p.62)

コードリストのハッシュが、Ruby 1.9系でないと使えない記法になっています。Ruby 1.8系でも1.9系でも使える記法にします。

skip_before_filter :authenticate, :only => %w[new create]

skip_before_filter :authenticate, only: %w[new create]

Recipe 036 paramsで取得するパラメータの出力例が間違っている(p.74)

最後のコードリストの、paramsメソッドの出力例が間違っています。

params #=> { "args"=>["v1", "v2", "v3"], "commit"=>"commit" }

params #=> { "args"=>["value_1", "v2", "v3"], "commit"=>"commit" }

Recipe 058 コードリスト中のORDER方向指定が小文字になっている(p.123)

ページ先頭のコードリスト中で、ORDERの方向を指定するASCDESCが小文字になっています。

Entry.order("page_view_count DESC").order("updated_at ASC")

Entry.order("page_view_count desc").order("updated_at asc")

Recipe 076 「has_many :through関連でできること」の説明が間違っている(p.158)

「has_many :through関連でできること」で定義されるメソッドの表の直後の説明が間違っています。

Blogモデルではhas_many :comments, :through => :entriesと宣言しているので、Blog#commentsなどのメソッドが追加されます。

Blogモデルではhas_many :comments, :through => :blogsと宣言しているので、Blog#commentsなどのメソッドが追加されます。

Recipe 085 楽観的ロックの例外名が間違っている(p.183)

楽観的ロックにて競合した場合に発生する例外の名前が間違っています。

ActiveRecord::StaleObjectError

ActiveRecord::SlateObjectError

Recipe 112 保存済みオブジェクトに対応するフォームのmethod属性が間違っている(p.257)

保存済みオブジェクトに対応するフォームのmethod属性がputになると説明されていますが、誤りです。

<form>タグのaction属性が「/blogs/モデルのID」になり、HTTPメソッドをputに上書きするため_methodというhiddenフィールドが生成されます。

<form accept-charset="UTF-8" action="/blogs/2"
    class="edit_blog" id="edit_blog_2" method="post">
    <div style="margin:0;padding:0;display:inline">
      …(略)
      <input name="_method" type="hidden" value="put" />
      …(略)
    </div>
…(略)
</form>

<form>タグのaction 属性が「/blogs/モデルのID」、method属性が「put」になります。

<form accept-charset="UTF-8" action="/blogs/2"
    class="edit_blog" id="edit_blog_2" method="post">
…(略)
</form>

Recipe 119 先頭のコードリストの例で、結果が出力されない(p.276)

先頭のリストのコードが、結果が出力されない問題があったり、Railsからの警告がでる書式であったりします。form_forメソッド、collection_selectメソッドの両方の例で<%= %>であるべきところが<% %>になっています。

<%= form_for @entry do |f| %>
  # モデルオブジェクトCategoryを選択対象とするドロップダウンリストを
  # 生成する
  <%= f.collection_select(:category_id,
                         Category.all, :id, :name) %>
<% end %>

<% form_for @entry do |f| %>
  # モデルオブジェクトCategoryを選択対象とするドロップダウンリストを
  # 生成する
  <% f.collection_select(:category_id,
                         Category.all, :id, :name) %>
<% end %>

Recipe 131 HTML5タグの出力例が間違っている(p.302)

タグ出力メソッドの出力例に間違いがあります。

<%= number_field_tag 'volume', 10, :min=>"0", :max=>"30", :step=>"5" %>
#=> <input id="volume" max="30" min="0" name="volume" step="5" type="number"
     value= "10" />
    <br />
<%= range_field_tag 'volume2', 10, :min=>"0", :max=>"30", :step=>"5" %>
#=> <input id="volume2" max="30" min="0" name="volume2" step="5" type="range"
     value="10" />

<%= number_field_tag 'volume', 10, :min=>"0", :max=>"30", :step=>"5" %>
#=> <input id="foo" max="30" min="0" name="foo" step="5" type="number"
     value= "10" />
    <br />
<%= range_field_tag 'volume2', 10, :min=>"0", :max=>"30", :step=>"5" %>
#=> <input id="foo2" max="30" min="0" name="foo2" step="5" type="range"
     value="10" />

Recipe 171 xhrメソッドの引数の説明で数が間違っている(p.398)

二つ目のコードリストの前の説明文にて、xhrメソッドの引数が間違っています。

第1引数にHTTPメソッド、第2引数にアクション名を指定します。クエリパラメータがある場合、第3引数として指定します。

第2引数にHTTPメソッド、第3引数にアクション名を指定します。クエリパラメータがある場合、第4引数として指定します。

Recipe 186 説明の文章が間違っている(p.449)

コードリスト直下の説明にて、説明内容に誤りがあります。

さらに、非同期で実行したいジョブはメソッドの形にまとめます。たとえば、

さらに、非同期で実行したジョブはメソッドの形にまとめます。たとえば、

索引 p.467にてdefault_scopeの綴りに間違いがある(p.467)

索引のdefault_scopeの綴りに間違いがあります。

default_scope宣言

default_scape宣言

ご意見・誤記の報告等

本書に記載されている内容に関して、「ここの記述は間違っているのでは」「ここはこうなるべきでは」といったご指摘等がある場合は、このレポジトリのissueで受け付けております。

上記URLよりご記入いただければ幸いです。