Use 'animal_params' instead of params[:animal] for updates. 
Underscore the race instead of a simple downcast to fix an issue with Wildboar/wildboar/wild_boar.
Validates the presence of the race to avoid the creation of animals without a race.
Add a hidden field containing the current race. The field being disabled, the value was never sent to the controller.