Railscast 73 doesn't work. Is this an edge problem or am I missing something?

Episode 73 of Ryan Bate’s great series of screencasts shows an example
of using fields_for to create a new record containing two models. I’m
trying to repeat his result but alway get and error from this line:

<% fields_for "ferry[scheduled_port_attributes][]", scheduled_port

do |sp_form| %>

In the rails cast, this returns an array of scheduled_port_attributes,
but instead I get a hash with “3” as a key:

“ferry”=>{ “scheduled_port_attributes”=>{“3”=>{“departs(4i)”=>“21”,

Am I missing something? I’m on edge rails. Does that matter?