In the case of factories, the common state of any arbitrary object created by factory girl should be the bare requirements to make the object valid. In the case with the change above, every single time a topic is created, it'll have a category assigned. I don't think we want that.

Check out what I have right at the beginning of this topic factory in the ignore block:

```ruby
ignore do
   with_posts 0
end

# ...

after(:create) do |topic, evaluator|
  evaluator.with_posts.times do
    create(:post, topic: topic, messageboard: topic.messageboard)
  end
end
```

by default the "with_posts" trait is ignored.  so `create(:topic)` behaves as usual.  `create(:topic, with_posts: 7)` on the other hand, will create 7 posts after the factory is created. So, something like: 

```ruby
ignore do
   with_posts 0
   with_categories 0
end

# ...

after(:create) do |topic, evaluator|
  evaluator.with_posts.times do
    create(:post, topic: topic, messageboard: topic.messageboard)
  end

  evaluator.with_categories.times do
    create(:category, topic: topic)
  end
end
```

I fucking love factory_girl