Micropostモデルの生成

```
$ rails generate model Micropost content:string user_id:integer
```

もし
spec/factories/microposts.rbができていたら消す
(今回でなかった)
最初のMicropost spec, testも通す

```
$ vim db/migrate/20140421042436_create_microposts.rb
$ vim spec/models/micropost_spec.rb
$ bundle exec rake db:migrate
$ bundle exec rake db:test:prepare
$ bundle exec rspec
(成功)
```
リスト 10.1, 10.2
新しいマイクロソフトに対する検証をテスト

```
$ vim spec/models/micropost_spec.rb
$ vim app/models/micropost.rb
$ bundle exec rspec
(成功)
```
リスト10.3
belongs_toとhas_manyの関連のテスト(userとmicropost)

```
$ vim spec/models/micropost_spec.rb
$ vim spec/models/user_spec.rb
$ vim app/models/micropost.rb
$ vim app/models/user.rb
$ bundle exec rspec
(成功)
```
リスト: 10.8あたり
マイクロポスト作成用の新しいファクトリー

```
$ vim spec/factories.rb
```
リスト10.9
ユーザのマイクロソフトの順序(新しいものから)

```
$ vim spec/models/user_spec.rb
$ vim app/models/micropost.rb
$ bundle exec rspec
(成功)
```
Userが削除されるとマイクロソフトも削除される

```
$ vim spec/models/user_spec.rb
$ vim app/models/user.rb
$ bundle exec rspec
```
MicroPostの内容のテスト(140文字以内,空っぽダメ)

```
$ vim spec/models/micropost_spec.rb
$ vim app/models/micropost.rb
$ bundle exec rspec
(成功)
```
ユーザーのshowページでマイクロポストが表示されていることをテスト

```
$ vim spec/requests/user_pages_spec.rb
```
リスト10.17 - 10.19: ユーザの表示ページの拡張(まだテストは通らない)

```
$ vim app/controllers/users_controller.rb
$ vim app/views/microposts/_micropost.html.erb
$ vim app/views/users/show.html.erb
```
サンプルデータにマイクロソフト用のコードを追加

```
$ vim lib/tasks/sample_data.rake
$ bundle exec rake db:reset
$ bundle exec rake db:populate
$ bundle exec rake db:test:prepare
```

リスト 10.20
rspecが通らなかった理由が宣言してなかっただけなので修正

```
$ vim spec/requests/user_pages_spec.rb
$ bundle exec rspec
(成功)
```
マイクロソフト用のCSS

```
$ vim app/assets/stylesheets/custom.css.scss
```
リスト10.20のDBへのサンプルデータがうまくいってなかったので、修正

```
$ vim lib/tasks/sample_data.rake
```

原因
users = User.all(limit: 6)

解決
users = User.all.limit(6)

 * 参考
 * [Railsドキュメント modelについて](http://railsdoc.com/model)
Micropostsリソース用のルーティング

```
$ vim config/routes.rb
```
マイクロポスト用のアクセス制御テストと実装

```
$ vim spec/requests/authentication_pages_spec.rb
$ vim app/helpers/sessions_helper.rb
$ vim app/controllers/users_controller.rb
$ vim app/controllers/microposts_controller.rb <- new
$ bundle exec rspec
```

signed_in_userメソッドをセッションヘルパーに移動
リスト 10.24くらいまで
rails generate integration_test micropost_pages
(リスト 10.26)マイクロポスト作成のテスト。

```
$ vim spec/requests/micropost_pages_spec.rb
```
マイクロポスト作成のテストを通す実装

リスト10.27 Micropostsコントローラのcreateアクション。
app/controllers/microposts_controller.rb
リスト10.28 Homeページ (/) にマイクロポスト作成を追加する。
app/views/static_pages/home.html.erb
リスト10.29 ユーザー情報サイドバーのパーシャル。
app/views/shared/_user_info.html.erb
リスト10.30 マイクロポスト作成フォームのパーシャル。
app/views/shared/_micropost_form.html.erb
リスト10.31 homeアクションにマイクロポストのインスタンス変数を追加する。
app/controllers/static_pages_controller.rb
リスト10.32
他のオブジェクトでも動作するようにリスト7.24のエラーメッセージパーシャルを更新する。
app/views/shared/_error_messages.html.erb

この2つはfieldのほうをいじって上げる必要があった
リスト10.33 ユーザーサインアップエラーの表示を更新する。
app/views/users/new.html.erb
リスト10.34 ユーザー編集のエラーを更新する。
app/views/users/edit.html.erb

リスト 10.27 -> 10.34
リスト10.35 (プロト) ステータスフィードのテスト。

```
$ vim spec/models/user_spec.rb
```