RailsGuideのPartial Layouts が説明の通りに動かない。（Railsガイド写経）

&nbsp;&nbsp; [RailsGuide](http://guides.rubyonrails.org/) を写経している中で、書いてあるとおりの結果にならなかった箇所があったので、忘れないようにメモしておきます。

# 問題の箇所

[Action View Overview](http://guides.rubyonrails.org/action_view_overview.html) の、[4 Partial Layouts](http://guides.rubyonrails.org/action_view_overview.html#partial-layouts)に出てくる以下のコード：

```erb
<% render(layout: 'box', locals: { article: @article }) do %>
  <div>
    <p><%= article.body %></p>
  </div>
<% end %>
```

RailsGuideの説明では、上記の`locals: { article: @article }` によって、`do・・・end`　の中の`<%= article.body %>`のローカル変数`article`が`@article`を参照して、期待どおりのHTMLがレンダリングされるような説明が書かれているが、そうならない。

# 写経の手順

## 1.環境の確認

```railsguide``` というrailsアプリケーションを作成してあります。DBはMySQLです。

```shell-session
[ykt68@macbook railsguide]$ ruby -v
ruby 2.2.6p396 (2016-11-15 revision 56800) [x86_64-darwin15]
[ykt68@macbook railsguide]$ rails -v
Rails 5.0.2
```

## 2. scaffold で articleを作成

```shell-session
[ykt68@macbook railsguide]$ rails g scaffold article body
Running via Spring preloader in process 33051
      invoke  active_record
・・・
```
## 3.Articleレコード作成

```shell-session
[ykt68@macbook railsguide]$ rails db:migrate
== 20170315224850 CreateArticles: migrating ===================================
-- create_table(:articles)
   -> 0.0224s
== 20170315224850 CreateArticles: migrated (0.0225s) ==========================

[ykt68@macbook railsguide]$ rails c
Running via Spring preloader in process 33288
Loading development environment (Rails 5.0.2)
irb(main):001:0> Article.create(body: 'Partial Layouts are cool!')
   (0.1ms)  BEGIN
  SQL (0.4ms)  INSERT INTO `articles` (`body`, `created_at`, `updated_at`) VALUES ('Partial Layouts are cool!', '2017-03-16 07:51:08', '2017-03-16 07:51:08')
   (1.0ms)  COMMIT
=> #<Article id: 1, body: "Partial Layouts are cool!", created_at: "2017-03-15 22:51:08", updated_at: "2017-03-15 22:51:08">
irb(main):002:0> exit
[ykt68@macbook railsguide]$
```

## 4. scaffoldで作成される show.html.erb を表示させる。

```shell-session
[ykt68@macbook ch09]$ rails s
=> Booting Puma
=> Rails 5.0.2 application starting in development on http://localhost:3000
=> Run `rails server -h` for more startup options
Puma starting in single mode...
* Version 3.8.0 (ruby 2.2.6-p396), codename: Sassy Salamander
* Min threads: 5, max threads: 5
* Environment: development
* Listening on tcp://localhost:3000
Use Ctrl-C to stop
```
ブラウザから、```http://localhost:3000/articles/1```　にアクセスして以下のように表示されるのを確認

>
<img width="403" alt="スクリーンショット 2017-03-16 7.58.10.png" src="https://qiita-image-store.s3.amazonaws.com/0/74659/0c2f6f44-7380-f293-2723-62221e6c8a3f.png">

ここまでは準備で、以下が本題です。


## 5. Railsガイドのとおりにテンプレートを修正、追加

### 5.1 `show.html.erb`を以下のようにしました。

```erb:app/views/articles/show.html.erb
<% render(layout: 'box', locals: { article: @article }) do %>
  <div>
    <p><%= article.body %></p>
  </div>
<% end %>
```

### 5.2 以下の`_box.html.erb`を追加しました。

```erb:app/views/articles/_box.html.erb
<div class='box'>
  <%= yield %>
</div>
```

## 6.結果

&nbsp;wktkで期待する動作としては、上記の 5.1、5.2 のようにしておいて、再び
`http://localhost:3000/articles/1` 
を表示すると、`show.html.erb`　が以下のHTMLになる予定

```html
<div class='box'>
  <div>
    <p>Partial Layouts are cool!</p>
  </div>
</div>
```

であったのが、
<img width="1004" alt="スクリーンショット 2017-03-16 8.16.35.png" src="https://qiita-image-store.s3.amazonaws.com/0/74659/347edf68-b1bc-81cf-38c4-2f3a88ba86bc.png">

となり、何が原因かというと
<img width="1045" alt="スクリーンショット 2017-03-16 8.17.14.png" src="https://qiita-image-store.s3.amazonaws.com/0/74659/06d0999d-3709-4311-902d-c27c05b28eb3.png">


と出ていて、エラーメッセージには
```
undefined local variable or method `article' for #<#<Class:0x007fa20b328a48>:0x007fa20b2f8be0>
```
とあります。


# お願い

&nbsp;&nbsp;最後にお願いというオチですみませんが、

・そもそもRailsGuideの説明の解釈がおかしい

あるいは、

・確認の手順がおかしい

という点があれば、ご指摘ください。m(_ _)m

以上です。