It would be yielding to whatever template the controller action would
be using. In this case, that would be show.html.erb, since you're in
the show action.
Controller => show.html.erb => edit.html.erb
That's exactly it: edit.html.erb yields show.html.erb.
Both the layout and the view are templates but the view goes into the layout.
The part that is (probably) causing you to think something's odd is that the view is actually processed first. The result and any 'content_for' sections have been saved before the layout is processed. The main result of the view is inserted where the `yield` is processed and the result of a `content_for :foo` will be inserted if there is a `yield :foo`.