あっという間の十年ブログ【Ruby篇】

"詮ずるところ#{プログラミング}は、ただ年月長く倦まずおこたらずして、はげみつとむるぞ肝要にて、学びやうは、いかやうにてもよかるべく、さのみかかはるまじきことなり。いかほど学びかたよくても、おこたりてつとめざれば、功はなし。また、人々の才と不才とによりて、その功いたく異なれども、才不才は、生まれつきたることなれば、力に及びがたし。されど、大抵は、不才なる人といへども、おこたらずつとめだにすれば、それだけの功は有る物なり。" - 本居宣長

ActiveRecord::NotNullViolation: RuntimeError: NOT NULL constraint failed: microposts.user_id

Railsチュートリアル13章
「13.1.4マイクロポストを改良する」という項のなかで、テストを実行すると、

ActiveRecord::NotNullViolation: RuntimeError: NOT NULL constraint failed: microposts.user_id

というエラーが出た。
トライ&エラー&ググレカスを繰り返し、結局

orange:
  content: "I just ate an orange!"
  created_at: <%= 10.minutes.ago %>
  user: yuki

tau_manifesto:
  content: "Check out the @tauday site by @mhartl: http://tauday.com"
  created_at: <%= 3.years.ago %>
  user: yuki

cat_video:
  content: "Sad cats are sad: http://youtu.be/PKffm2uI4dk"
  created_at: <%= 2.hours.ago %>
  user: yuki

most_recent:
  content: "Writing a short test"
  created_at: <%= Time.zone.now %>
  user: yuki

microposts.ymlに、それぞれuser:の行を追加して、test/fixtures/users.yml内に存在するユーザー(私の場合yukiチュートリアル通りだとmichael)に紐づけたら、テスト通過。

追記:章の少し先にいったところ(13.2.3)で、結局user:の行を追加していた。バージョンの違いによってテスト通ったり通らなかったりするようだ。