The PR request looks good. 

The only thing I would recommend is that instead of having comment "Should trigger save" we can assert here that sql is indeed fired by having something like

``` ruby
assert_queries(2) do
  # one query for updating name and second query for updating pirate_id
  pirate.ship = ship 
end
```