In my create user view
<%= simple_form_for @user do |f| %>
<%= render 'shared/error_messages', :object => f.object %>
<%= f.input :size, :collection => @plan, :label_method => :details,
:value_method =>:name,:include_blank => false %>
Collection/list loads fine. If a user inputs the wrong value and my the page reloads with the error notification, the :size field reloads as a numeric input field and not with my collection/list.
Are you sure your controller is still assigning @plan when an error occurs? You can confirm that by adding the following to your view to dump the @plan value: